CloudFront 和 S3 的端点问题

MCK*_*pur 1 amazon-s3 amazon-web-services ios amazon-cloudfront

我正在创建一个带有 S3 的 iOS 应用程序,目前没有发行版 (CloudFront) 作为测试,然后再透露创建一个完整的承诺应用程序。在 S3 管理控制台中,我在我居住的新加坡制作了我的存储桶,因此此演示并不真正需要 CloudFront。我必须设置这样的端点:

[s3Client setEndpoint: [AmazonEndpoints s3Endpoint: AP_SOUTHEAST_1]];
Run Code Online (Sandbox Code Playgroud)

哪个指向新加坡,端点是存储桶需要将数据发送到的地方吗?(用户在哪里)

所以现在我有两个问题

  • 如果我使用 CloudFront,是否需要设置终端节点?我什至如何在 iOS 中使用 CloudFront,我生成一个签名 URL 然后呢?

  • 如果用户在随机国家/地区使用该应用程序,可以说,如果我需要设置(使用 CloudFront),我会将其设置为哪个端点?我会通过语言环境找到他们当前的国家并找到它最接近的端点吗?

谢谢!

jam*_*ieb 5

CloudFront 中的一组文件称为“分发”。当您设置分发时,您指定一个或多个“来源”,即您提供给用户的文件的规范来源。

在您的情况下,创建一个新分配并将 S3 存储桶指定为源。然后在您的应用程序中,您将其引用为:http://xxxxxxx.cloudfront.net/hello.png而不是http://mybucket.s3.amazonaws.com/hello.png. hello.png当有人第一次请求它并缓存它时,Cloudfront 将自动从 S3 存储桶中提取。

CloudFront 通过根据网络延迟对其进行路由来自动(并且近乎即时地)检测哪个边缘位置离用户最近。您不必自己进行任何这些计算。

在您的应用程序中使用 CloudFront 之前,我建议您阅读我在此处列出的注意事项