标签: amazon-s3

为什么 CloudFront 没有跟随 S3 网站重定向位置?

我有一个托管在 Amazon S3 上的网站。它是托管在 WordPress 上的旧网站的新版本。

我已经设置了一些带有元数据的文件Website Redirect Location来处理旧位置并将它们重定向到新的网站页面。

例如:我http://www.mysite.com/solution想重定向到http://mysite.s3-website-us-east-1.amazonaws.com/product.html所以我solution在我的存储桶中创建了一个带有正确元数据的空文件:

Website Redirect Location= /product.html

S3 重定向元数据相当于一个301 Moved Permanently非常适合 SEO 的元数据。这在直接从 S3 域访问 URL 时非常有效。

我还基于网站存储桶设置了 CloudFront 分配。当我尝试通过我的发行版访问时,重定向不起作用,即:

http://xxxx123.cloudfront.net/solution 不重定向而是下载空文件。

所以我的问题是如何通过 CloudFront 分配保持重定向?或者关于如何在不恶化 SEO 的情况下处理重定向的任何想法?

谢谢

amazon-s3 amazon-cloudfront

23
推荐指数
1
解决办法
3万
查看次数

如何让用户将文件上传到 S3 存储桶,但不能覆盖或删除?

我有一个用户的以下 IAM 策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1395161912000",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:PutObject",
        "s3:*"
      ],
      "Resource": [
        "arn:aws:s3:::bucketname"
      ]
    },
    {
      "Sid": "list",
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

目标是让用户将文件上传到存储桶,但不会覆盖或删除。是用来备份的。我从ListBucketand开始PutObject,但*由于它不起作用而添加。甚至*不允许用户上传文件,只是获取Access Denied.

当我尝试模拟器时,它返回Denied - Implicitly denied (no matching statements found).for ListBucket,这看起来很奇怪,因为我已经隐含地允许了。

我试过 Cyber​​duck 和 3Hub 作为 S3 客户端。

知道出了什么问题吗?

amazon-s3 amazon-iam

22
推荐指数
1
解决办法
2万
查看次数

尝试将别名目标从 Route 53 设置为 S3 时没有可用的目标

我试图建立一个简单的基于亚马逊AWS S3网站,如解释在这里

我已经设置了 S3 存储桶 (simples3websitetest.com),给了它(希望)正确的权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::simples3websitetest.com/*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我上传了 index.html,设置了网站访问,它可以通过http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html访问

到目前为止一切顺利,现在我想设置 Amazon Route53 访问,这就是我卡住的地方。

我已经在我拥有的域 (resourcesbox.net) 上设置了一个托管区域,然后单击了“创建记录集”,然后进入了“设置别名”步骤,但是当我在 S3 网站端点下看到“没有可用的目标”时尝试设置别名目标。

我错过了什么??

website alias amazon-s3 amazon-web-services amazon-route53

22
推荐指数
1
解决办法
2万
查看次数

在 Cloudfront 上设置 Access-Control-Allow-Origin

我在使用 AWS Cloudfront 向 Firefox 提供静态资产时遇到问题。

Chrome 运行良好,但 Firefox 返回 CORS 错误。

如果我执行 curl ,我会得到:

HTTP/1.1 200 OK
Content-Type: application/x-font-opentype
Content-Length: 39420
Connection: keep-alive
Date: Mon, 11 Aug 2014 21:53:50 GMT
Cache-Control: public, max-age=31557600
Expires: Sun, 09 Aug 2015 01:28:02 GMT
Last-Modified: Fri, 08 Aug 2014 19:28:05 GMT
ETag: "9df744bdf9372cf4cff87bb3e2d68fc8"
Accept-Ranges: bytes
Server: AmazonS3
Age: 2743
X-Cache: Hit from cloudfront
Via: 1.1 c445b20dfbf3128d810e975e5d84e2cd.cloudfront.net (CloudFront)
X-Amz-Cf-Id: ...
Run Code Online (Sandbox Code Playgroud)

我认为需要标题:

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

谁能帮我?为什么它是 Firefox 而不是 Chrome 的问题?我该如何解决?

firefox amazon-s3 amazon-cloudfront amazon-web-services cors

22
推荐指数
2
解决办法
5万
查看次数

将 400G 文件从 ec2 弹性块存储卷复制到 s3 的最快方法是什么?

我必须将 400G 的文件从弹性块存储卷复制到 s3 存储桶...这些大约 300k 个文件约为 1Mb

我试过s3cmds3fuse,两个都是真的,真的很慢..对一个完整的一天s3cmd然表示,完成复制,而当我检查了水桶,若无其事(我想,出事了,但至少s3cmd 从未抱怨过任何事情)

S3Fuse 又工作了一整天,复制了不到 10% 的文件......

有没有更好的解决方案?

我当然在运行 Linux (ubuntu 12.04)

amazon-s3 amazon-ec2 amazon-web-services

21
推荐指数
2
解决办法
3万
查看次数

将版本化 S3 存储桶恢复到特定时间点

假设我为我的存储桶启用了 S3 版本控制:http : //docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html

然后,假设某人(例如,初级员工)弄乱了 S3 存储桶(意外删除了一些文件等)

然后如何将整个版本化存储桶恢复到特定时间点?我相信考虑到 S3 的 API,这应该是可能的,但我宁愿不必自己编写这样的脚本,因为害怕遗漏一些东西(我不是 AWS 专家)。

这个问题有没有好的解决方案?我使用 S3 存储桶作为我的 Rails 应用程序的图像存储,因此我可以将其用作 rake 任务的基于 Ruby 的东西将是理想的选择。

amazon-s3 ruby-on-rails amazon-web-services

19
推荐指数
1
解决办法
1万
查看次数

如何防止删除 S3 存储桶?

看起来创建存储桶策略可能会奏效,但我在创建策略时遇到了问题。

amazon-s3

17
推荐指数
2
解决办法
2万
查看次数

是否需要在 Amazon S3 上备份数据?

我在 S3 上托管了 200 GB 的产品图片(这是我的主要文件主机)。

我是否需要将该数据备份到其他地方,或者 S3 是否安全?

我一直在尝试将 S3 存储桶安装到 EC2 实例,然后每晚进行 rsync 备份。问题是它大约有 300 万个文件,因此需要一段时间来生成不同的 rsync 需求。备份实际上需要大约 3 天才能完成。

任何想法如何更好地做到这一点?(如果有必要?)

backup amazon-s3

17
推荐指数
1
解决办法
1万
查看次数

备份存储在 Amazon S3 上的数据

我有一个运行 Web 服务器的 EC2 实例,该服务器将用户上传的文件存储到 S3。这些文件被写入一次并且永远不会改变,但偶尔会被用户检索。我们每年可能会积累大约 200-500GB 的数据。我们希望确保这些数据是安全的,尤其是不会被意外删除,并且希望能够恢复被删除的文件,无论出于何种原因。

我已经阅读了 S3 存储桶的版本控制功能,但我似乎无法找到是否可以恢复没有修改历史记录的文件。有关版本控制,请参阅此处的 AWS 文档:

http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html

在这些示例中,它们没有显示上传数据但从未修改然后删除的场景。在这种情况下删除的文件是否可以恢复?

然后,我们认为我们可以使用对象生命周期管理将 S3 文件备份到 Glacier:

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

但是,这似乎对我们不起作用,因为文件对象没有复制到 Glacier 而是移动到 Glacier(更准确地说,它似乎是一个对象属性已更改,但无论如何......)。

因此,似乎没有直接的方法来备份 S3 数据,并且将数据从 S3 传输到本地服务器可能非常耗时,并且随着时间的推移可能会产生大量的传输成本。

最后,我们想我们会每个月创建一个新的bucket作为每月的完整备份,并在第1天将原始bucket的数据复制到新的bucket中。然后使用类似duplicity的东西(http://duplicity.nongnu.org/ ) 我们每晚都会同步备份桶。在月底,我们会将备份存储桶的内容放入 Glacier 存储中,并使用原始存储桶的新的当前副本创建一个新的备份存储桶……并重复此过程。这似乎可以工作并最大限度地降低存储/传输成本,但我不确定双重性是否允许直接进行存储桶到存储桶的传输,而无需先将数据传输到控制客户端。

所以,我想这里有几个问题。首先,S3 版本控制是否允许恢复从未修改过的文件?有什么方法可以将文件从 S3“复制”到我错过的 Glacier?duplicity 或任何其他工具可以直接在 S3 存储桶之间传输文件以避免传输成本吗?最后,我在备份 S3 数据的方法上是否离谱?

提前感谢您提供的任何见解!

更新

亚马逊最近宣布版本控制现在适用于生命周期规则

backup amazon-s3 amazon-web-services

16
推荐指数
1
解决办法
9613
查看次数

使用 Amazon S3 作为备份服务的软件

您推荐使用 Amazon S3 作为日常备份的占位符的软件是什么?

我需要它完全自动化,并且易于恢复数据。

backup amazon-s3

15
推荐指数
2
解决办法
2061
查看次数