问题标签 [amazon-cloudfront]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
17293 浏览

python - 开始使用 Python 进行安全 AWS CloudFront 流式传输

我创建了一个 S3 存储桶,上传了一个视频,在 CloudFront 中创建了一个流分发。使用静态 HTML 播放器对其进行了测试,并且可以正常工作。我通过帐户设置创建了一个密钥对。目前,我的桌面上有私钥文件。这就是我所在的地方。

我的目标是让我的 Django/Python 站点创建安全的 URL,并且人们无法访问视频,除非他们来自我的一个页面。问题是我对亚马逊的布局方式过敏,我越来越困惑。

我意识到这不会是 StackOverflow 上最好的问题,但我敢肯定,我不会是这里唯一一个对如何设置安全的 CloudFront/S3 情况不以为然的傻瓜。我非常感谢您的帮助,并且愿意(两天后)为最佳答案提供 500 分的赏金。

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

  • 在文档中(下一点有一个示例),周围有很多 XML 告诉我我需要POST到各个地方的东西。是否有用于执行此操作的在线控制台?还是我真的必须通过 cURL (等)强制执行此操作?

  • 如何为 CloudFront 创建源访问身份并将其绑定到我的分配?我已阅读此文档,但根据第一点,不知道如何处理它。我的密钥对如何适应这个?

  • 完成后,如何将 S3 存储桶限制为仅允许人们通过该身份下载内容?如果这是另一个 XML 工作,而不是在 Web UI 周围单击,请告诉我应该在哪里以及如何将其输入我的帐户。

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

  • 是否有任何应用程序或脚本可以解决设置此服装的困难?我使用 Ubuntu (Linux),但如果它是 Windows-only,我在虚拟机中安装 XP。我已经看过 CloudBerry S3 Explorer Pro - 但它与在线 UI 一样有意义。

0 投票
2 回答
3414 浏览

java - Amazon S3 和 Cloudfront 与 Java API

我目前正在使用 S3 和 Java API 来获取对象及其内容。我使用 AWS 控制台创建了一个 Cloudfront 分发,并将我的 S3 存储桶与我的对象设置为存储桶来源。但我没有注意到下载性能有任何改善,我注意到在控制台窗口中 url 引用了 s3:

信息:发送请求:GET https://mybucket.s3.amazonaws.com /picture.jpg 标题:(范围:bytes=5001-1049479,Content-Type:application/x-www-form-urlencoded;charset=utf- 8, )

而在 Cloudfront 的入门指南中,url 应该是:

http://(域名)/picture.jpg

其中(域名)特定于 Cloudfront 发行版。所以 Java API 仍然是从 S3 获取文件,而不是通过 cloudfront

有没有使用 S3 的 Java API 通过 Cloudfront 下载文件?如果不是,在我的 java 程序中通过云端获取对象的最佳方法是什么?我对这些东西还是有点陌生​​,非常感谢任何帮助!

0 投票
4 回答
5405 浏览

ruby - How to do the equivalent of 's3cmd setacl --acl-grant=read:82b82d.. s3://somebucket/..' in Ruby?

How can you do the equivalent of:

in Ruby? (preferably by using the 'aws-s3' gem)

=== Edit ===

As Soren suggests below, something similar to this should work:

However that does not work, I get the following error:

The XML you provided was not well-formed or did not validate against our published schema (AWS::S3::MalformedACLError)

Any ideas how to make this work?

0 投票
2 回答
256 浏览

php - 将我的 LAMP 移至亚马逊

我有一个小型 LAMP 应用程序,我想迁移到亚马逊

  • 为此,我需要 Amazon EC2,对吗?
  • 我希望从 CDN 交付我的静态资源。这是否意味着我需要 Amazon 的 CloudFront 和 EC2?(或者 EC2 在某种程度上也是 CDN 吗?)
  • 我还想使用 PHP 加速器(可能是 APC)、memcache 等。我可以在亚马逊上做到这一点吗?
  • 我还能使用 MySQL 吗?(我问这个是因为亚马逊似乎也有自己的 RDBMS;不确定我是否被迫使用他们的)
0 投票
1 回答
634 浏览

cdn - 正在为我的 CDN 躲避使用 Cloudfront 吗?

我们正在考虑使用 Cloudfront 来托管我们的网站 images/css/js,

我意识到 CDN 的正常运行时间很长,

但是如果公共互联网 DNS 暂时停机怎么办

(有时,在新西兰,我们在短时间内无法访问国际站点),Cloudfront 是否依赖这样的服务?

这显然会导致网站显示,但无法获取 CDN 资产..

0 投票
2 回答
12804 浏览

amazon-s3 - Amazon S3 Cloudfront 部署最佳实践

我们当前的站点计划是使用 Amazon 的 Cloudfront 服务作为资产文件(如 CSS、JavaScript 和图像)以及任何其他静态文件的 CDN。

我们目前在 S3 中有 1 个存储桶,其中包含所有这些静态文件。这些文件根据它们是什么被分成不同的文件夹,“脚本”是 JS 文件,“图像”是图像,等等 yadda yadda yadda。

因此,我从一开始就没有意识到,一旦您将存储桶从 S3 部署到 Cloudfront 分布,那么对存储桶的每个后续更新都不会再次部署到同一个分布。因此,每次进行静态文件更新时,您似乎都必须将存储桶重新部署到另一个 Cloudfront 实例。

这对图像来说很好,因为我们可以很容易地确保如果图像发生变化,那么我们只需创建一个新图像。但是,这对于 CSS 和 JS 来说很难做到。

所以,这让我想到了最佳实践问题:

  1. 为每个生产部署创建另一个 Cloudfront 发行版是最佳实践吗?这里的问题是会导致 CNAME 记录出现问题。
  2. 由于这些文件的性质以及它们需要轻松修改,最好不要在 Cloudfront 中存储 CSS 和 JS?似乎对此的答案是否定的,因为这是 CDN 的目的。
  3. Cloudfront 还有其他我不知道的方法吗?
0 投票
2 回答
812 浏览

amazon-web-services - Amazon CloudFront 中无效文件请求的计费如何运作?

在亚马逊文档中,他们说

失效请求 您每月请求失效的前 1,000 个文件不收取额外费用。此后在您的失效请求中列出的每个文件 0.005 美元。

是不是表示如果我使用www.cloudfront.net/abc.jpg1000次,图像不存在,我会被收费?

0 投票
0 回答
204 浏览

amazon-cloudfront - amazon cloudfront:查找所有缓存的资产

当我们部署时,我需要编写一个任务来从我们的云端存储桶中删除所有资产。

目前,我没有在我的版本存储库中跟踪动态创建的资产(特别是我们通过 sass 创建的 css 文件),所以我不可能说“将此提交与该提交进行比较并给我所有已更改的 css 文件 b /c 这些是我们需要使文件无效的文件”。

鉴于此,我想我只需要在部署时使给定类型的所有资产(例如 css)无效。但是,我看不到如何检索云端缓存的任何/所有资产。

有人知道如何向云端询问他们缓存在我的存储桶中的所有活动资产吗?或者更好的是,它们缓存的所有给定类型(css、js、png)的资产?

0 投票
1 回答
992 浏览

javascript - 间歇性 Cloudfront CDN 故障(监控) - CDN 故障转移

在过去的 2 个月中,我一直在经历 Amazon Cloudfront 间歇性故障(每周 2-3 次),该页面将从我的 Web 服务器加载,但 CDN 中的所有资产当时都会阻塞等待几分钟(我确认使用来自不同数据中心的 shell curl,有些工作不依赖于边缘位置 - 伦敦?)。一旦挂起的请求成功,一切都会恢复正常。我们一直在向亚马逊报告这个问题,但他们总是回复“不要指望我们的回复。如果无数人只会抱怨,那么我们会考虑调查这种信息”。在我写完支持请求之前,它通常会恢复正常运行。

我得出的结论是,由于缺乏迁移到其他 CDN 的开发时间,最好的方法是在 html 标头中添加一个脚本,以便在发生类似情况时通知我们。因此,如果请求花费的时间超过 N 毫秒,请在标头中尝试从 CDN 下载一个微小的 gif,然后调用根域中的任意 url(用于监控)。

问题: 如何在所有流行的浏览器中可靠地请求具有超时回调的文件。IE:

  • 使用 AJAX 从 CDN 请求文件 - 由于跨域限制而无法工作?
  • setTimeout("callbackTimeout",2000) callbackTimeout(){getElementById() else ...HttpWebRequest...} - 会被挂起的 HttpWebRequest 请求阻止还是会起作用?

能怎样?

谢谢。

0 投票
2 回答
3503 浏览

header - CloudFront 图像缓存控制标头

1-这是一个有效的缓存控制标头:

2-我正在尝试为从 S3 通过 CloudFront 提供的对象设置缓存控制标头。图像不经常改变,但有时可以。这似乎是一个很好的缓存控制吗?CloudFront 应每 60 分钟重新验证一次,但用户将缓存一整天。(我不太担心个人用户,而更担心继续为新用户提供陈旧的图像)。

3-我应该使用其他标题吗?(即代理重新验证)

在 S3 对象上更改这些设置并不容易,所以我试图在第一次就正确处理。谢谢。