标签: amazon-cloudfront

Amazon S3 Redirect和Cloudfront

我正在尝试使用对象在S3上设置301重定向,这里引用了http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html.我遇到了一些问题,似乎无法弄清楚我做错了什么.

我得到的是一个空白页面(0字节文件),好像没有设置'网站重定向位置'元数据值.

我究竟做错了什么?

此外,这是否适用于AWS CloudFront?


我的S3控制台设置 S3控制台设置

值得注意的事情:

我有这个设置来托管一个静态网站.我正在使用ssl/https将我自己的证书上传并设置在cloudfront发行版上.除重定向对象外,所有页面似乎都有效.我已经尝试设置路由规则,但它们似乎在Cloudfront中不起作用.

我正试图通过cloudfront url和s3 url访问重定向(https://s3.amazonaws.com/ {bucket}/users/sign_in)

redirect amazon-s3 amazon-web-services amazon-cloudfront

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

正确的S3 + Cloudfront CORS配置?

我的应用程序将图像存储在S3上,然后通过Cloudfront代理它们.我很高兴使用新的S3 CORS支持,以便我可以使用HTML5 canvas方法(具有跨源策略),但似乎无法正确配置我的S3和Cloudfront.当我尝试将图像转换为canvas元素时,仍然遇到"Uncaught Error:SECURITY_ERR:DOM Exception 18".

这是我到目前为止所拥有的:

S3

<CORSConfiguration>
  <CORSRule>
    <AllowedOrigin>MY_WEBSITE_URL</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
  </CORSRule>
  <CORSRule>
    <AllowedOrigin>MY_CLOUDFRONT_URL</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
    </CORSRule>
  </CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

CloudFront的

起源

Origin Protocol Policy: Match Viewer

HTTP Port: 80

HTTPS Port: 443
Run Code Online (Sandbox Code Playgroud)

行为

Origin: MY_WEBSITE_URL

Object Caching: Use Origin Cache Headers

Forward Cookies: None

Forward Query Strings: Yes
Run Code Online (Sandbox Code Playgroud)

这里有什么我想念的吗?

更新:刚尝试将标题更改为

<AllowedHeader>Content-*</AllowedHeader>
<AllowedHeader>Host</AllowedHeader>
Run Code Online (Sandbox Code Playgroud)

基于这个问题的Amazon S3 CORS(跨域资源共享)和Firefox跨域字体加载

仍然没有去.

更新:更多信息请求

Request
URL:https://d1r5nr1emc2xy5.cloudfront.net/uploaded/BAhbBlsHOgZmSSImMjAxMi8wOS8xMC8xOC81NC80Mi85NC9ncmFzczMuanBnBjoGRVQ/32c0cee8
Request Method:GET
Status Code:200 OK (from cache)
Run Code Online (Sandbox Code Playgroud)

UPDATE

我想也许我的请求不正确,所以我尝试启用CORS

img.crossOrigin = '';
Run Code Online (Sandbox Code Playgroud)

但然后图像没有加载,我得到错误:跨源资源共享策略拒绝跨源图像加载.

amazon-s3 cors amazon-cloudfront

59
推荐指数
8
解决办法
4万
查看次数

使用Python开始使用安全的AWS CloudFront流媒体

我创建了一个S3存储桶,上传了一个视频,在CloudFront中创建了一个流媒体分发.使用静态HTML播放器测试它,它的工作原理.我已通过帐户设置创建了密钥对.我目前在桌面上有私钥文件.那就是我.

我的目标是达到我的Django/Python网站创建安全URL的程度,除非他们来自我的某个页面,否则人们无法访问这些视频.问题是我对亚马逊铺设的方式过敏,而且我变得越来越困惑.

我意识到这不会是StackOverflow上最好的问题,但我确信我不能成为这里唯一无法解决如何设置安全的CloudFront/S3情况的傻瓜.我真的很感激你的帮助,我愿意(一旦两天过去)给予最好的答案500pt赏金.

我有几个问题,一旦回答,应该适合我如何完成我所追求的一个解释:

  • 在文档中(下一点有一个例子),有很多XML可以告诉我,我需要把POST东西带到各个地方.这样做是否有在线控制台?或者我真的必须通过cURL(等)来强迫这个?

  • 如何为CloudFront创建Origin Access Identity并将其绑定到我的发行版?我已经阅读了这份文件,但是,从第一点开始,我不知道如何处理它.我的密钥对如何适合这个?

  • 完成后,如何限制S3存储桶只允许人们通过该标识下载内容?如果这是另一个XML作业,而不是点击Web UI,请告诉我我应该在哪里以及如何将其纳入我的帐户.

  • 在Python中,为文件生成过期URL的最简单方法是什么.我已boto安装,但我没有看到如何从流分发中获取文件.

  • 是否有任何应用程序或脚本可能难以设置此服装?我使用Ubuntu(Linux),但如果它只是Windows,我在VM中有XP.我已经看过CloudBerry S3 Explorer Pro - 但它与在线UI一样有意义.

python amazon-s3 amazon-web-services amazon-cloudfront

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

CloudFront + S3网站:应显示隐式索引文档时"指定的密钥不存在"

我刚刚在Amazon S3上部署了一个静态网站,目前可以在这里查看:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/

如果单击任何文章链接,您会注意到以下错误:

S3错误

S3抱怨该文件不存在.现在,这就是奇怪的 - 我在我的域名上使用CloudFront.因此,当您单击该文章链接时,它会将请求发送到CloudFront,然后CloudFront尝试从S3存储桶中取回文件.

但是,如果您直接从S3访问相同的URL,例如:http://www.rdegges.com.s3-website-us-east-1.amazonaws.com/2015/building-a-heroku-addon-planning/页面加载就好了.

看来这里有些东西在翻译中迷失了.

有人建议我可以做些什么来修复我的设置?

amazon-s3 amazon-web-services amazon-cloudfront

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

有哪些客户端工具可用于管理Amazon S3和CloudFront?

我刚开始使用Amazon S3Amazon CloudFront.我可以使用哪些适当的客户端工具来管理我的帐户?就像上传文件等.是的我是开发人员,但是,我很紧张,我只是想部署我的应用程序.

我遇到了这个S3浏览器.这几乎就是我要找的东西.

编辑〜是否可以将存储桶映射为Windows驱动器?

amazon-s3 amazon-web-services amazon-cloudfront

37
推荐指数
4
解决办法
5万
查看次数

为什么浏览器仍然使用max-age发送缓存控制公共请求?

我有Amazon S3对象,对于每个对象,我都设置了

Cache-Control: public, max-age=3600000
Run Code Online (Sandbox Code Playgroud)

那大概是41天.

我的Amazon CloudFront Distribution设置了最小TTL,也有3600000.

这是清除缓存后的第一个请求.

GET /1.0.8/web-atoms.js HTTP/1.1
Host: d3bhjcyci8s9i2.cloudfront.net
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Run Code Online (Sandbox Code Playgroud)

而响应是

HTTP/1.1 200 OK
Content-Type: application/x-javascript
Content-Length: 226802
Connection: keep-alive
Date: Wed, 28 Aug 2013 10:37:38 GMT
Cache-Control: public, max-age=3600000
Last-Modified: Wed, 28 Aug 2013 10:36:42 GMT
ETag: "124752e0d85461a16e76fbdef2e84fb9"
Accept-Ranges: bytes
Server: AmazonS3
Age: 342557
Via: 1.0 6eb330235ca3971f6142a5f789cbc988.cloudfront.net (CloudFront)
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: 92Q2uDA4KizhPk4TludKpwP6Q6uEaKRV0ls9P_TIr11c8GQpTuSfhw==
Run Code Online (Sandbox Code Playgroud)

即使亚马逊明确发送Cache-Control,Chrome仍然会发出第二个请求,而不是从Cache中读取它. …

google-chrome cache-control amazon-s3 http-headers amazon-cloudfront

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

CloudFront分配未显示为Route53别名目标

我正在尝试添加指向我的云端分发的路由53记录集.但是,当我在路径53中选择"创建记录集"并单击后续面板中的别名目标时,不会列出云前沿分布.我得到的是"没有目标可用".我的分发已创建并已启用(并且正在运行).我在我的发行版中添加了一个CName,其中包含我在Route53中设置的相同域名,但它仍然没有显示.

如何让我的发行版显示在Alias Target字段中,以便我可以将Route53'a'记录指向它?

谢谢

amazon-web-services amazon-cloudfront amazon-route53

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

如何CNAME到Amazon API Gateway端点

我正在尝试在Cloudflare上设置CNAME以指向Amazon API Gateway端点.CNAME用于引用我的某个子域名时使用.网关反过来指向DigitalOcean上的服务器的IP.我是亚马逊网络服务的新手,如果有人能够概述DNS,亚马逊网关和Cloudfront的正确配置(我认为需要将网关暴露给亚马逊外部的DNS服务器),我将不胜感激.任何帮助将非常感激.

UPDATE

我已经在这方面做了一段时间而没有取得多大进展.有没有人知道这是否是一种可行的方法或者如何做到这一点?

UPDATE2

我以为我需要将CNAME记录添加到cloudFlare并且刚刚进入重定向循环,观察到:

curl -L -i -v https://sub.mydomain.com/
Run Code Online (Sandbox Code Playgroud)

dns amazon-web-services amazon-cloudfront aws-api-gateway

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

Cloudfront服务于自己的SSL证书

有没有人知道在使用您自己的CNAME时是否可以使用您自己的证书通过https服务于cloudfront?我甚至找不到通过S3设置我自己的SSL证书的方法......所以我不确定这是否可能.

更新:如果有人对此问题的更新感兴趣 - maxcdn.com提供在您的域上托管您的SSL证书,每月只需59美元的固定费用.

它不是亚马逊,但它甚至支持永久地从您的服务器和托管中提取,或者如果您在指定的任何时间发送缓存控制头,直到它再次获取原始URL.

整个报价非常整洁.:d

ssl https amazon-s3 amazon-web-services amazon-cloudfront

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

如何使CloudFront永远不会在S3存储桶上缓存index.html

我在S3存储桶上托管了一个React应用程序.使用yarn build(这是一个基于create-react-app的应用程序)缩小代码.该build文件夹看起来像:

build
??? asset-manifest.json
??? favicon.ico
??? images
?   ??? map-background.png
?   ??? robot-icon.svg
??? index.html
??? js
?   ??? fontawesome.js
?   ??? packs
?   ?   ??? brands.js
?   ?   ??? light.js
?   ?   ??? regular.js
?   ?   ??? solid.js
?   ??? README.md
??? service-worker.js
??? static
    ??? css
    ?   ??? main.bf27c1d9.css
    ?   ??? main.bf27c1d9.css.map
    ??? js
        ??? main.8d11d7ab.js
        ??? main.8d11d7ab.js.map
Run Code Online (Sandbox Code Playgroud)

我永远不想index.html被缓存,因为如果我更新代码(导致十六进制后缀main.*.js更新),我需要用户下次访问以获取<script src>更改index.html以指向更新的代码.

在CloudFront中,我似乎只能排除路径,排除"/"似乎无法正常工作.我得到奇怪的行为,我更改代码,如果我打刷新,我看到它,但如果我退出Chrome和回去,我看到非常过时代码的某些原因.

我不想在每个代码版本上触发失效(通过CodeBuild).还有其他方法吗?我认为,挑战之一是,因为这是使用路由器作出反应的应用程序,我在用错误的文件设置为做一些挂羊头卖狗肉index.html,并迫使HTTP状态200,而不是403.

amazon-s3 amazon-web-services amazon-cloudfront

35
推荐指数
3
解决办法
8890
查看次数