是否无法使用 AWS CloudFront 在 S3 上下载我的私有图像?

Is it impossible to use AWS CloudFront for downloading my private image on S3?

我正在使用 AWS SDK 制作全球 iOS 应用程序。
并且有用户获取图片文件的功能;仅当请求者是图像文件上传者的朋友时。
对于此功能,我将 AWS S3 用于具有私有访问权限的存储服务。 我想为我的用户使用 CloudFront 来更快地下载文件。

我应该设置存储桶名称以便在 AWS S3 SDK 上下载,但 CloudFront 似乎不支持此存储桶名称。
AWS CloudFront 是否仅适用于 public 具有 url 的事物?

您是否考虑过制作您的 AWS S3 存储桶 public,然后加密所有用户的照片?您可以通过 EC2 或其他服务推送密钥,并且仍然可以获得 CloudFront 的性能。

如果您想通过 CloudFront 提供私人内容,您会发现此文档很有用 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html. Currently the AWS SDK for iOS doesn't support CloudFront directly. You need to manually sign the request. A related question is asked on AWS forum https://forums.aws.amazon.com/thread.jspa?messageID=336955

但是,即使您可以按照 https://forums.aws.amazon.com/thread.jspa?messageID=336955 中的指示从 CloudFront 下载照片,我们也强烈建议您不要这样做,因为您会将私钥 pem 文件一起发送到 public与您的应用程序。洋介说的很清楚。