我可以将图像直接从客户端浏览器上传到 CloudFront 吗?

Posted

技术标签:

【中文标题】我可以将图像直接从客户端浏览器上传到 CloudFront 吗?【英文标题】:Can I upload image directly from client browser to CloudFront? 【发布时间】:2016-09-23 10:59:09 【问题描述】:

一般来说,当我想将图像缓存到 CloudFront 时,

我向以下方法发送了一个文件。

[ClientBrowser->Origin(EC2)->C/F->Edge location->Caching Complete->Delete Origin Image]

但是,这不可能吗?关于通过以下方式上传文件?

[ClientBrowser->C/F->Edge location->Caching Complete]

【问题讨论】:

【参考方案1】:

CloudFront 支持上传,但这是为了加快文件上传速度,而不是为了缓存它们。 CloudFront 只会缓存原始服务器中存在的文件,因此您无法将文件上传到您希望它缓存的 CloudFront。您必须将文件放在源服务器上。

【讨论】:

hmm.. 所以如果我有很多自定义源服务器,我可以使用它们(node.js 服务器)吗?比如origin server没有images/A.jpg,Custom server有images/A.jpg,这种情况c/f能识别吗? 尝试使云端缓存失效,然后检查。 @PiyushPatil 无效?不,我想知道可以分割上传空间 “分割上传空间”听起来是个糟糕的主意,而且 CloudFront 将无法使用多个源服务器。您可能需要将这些文件存储在 S3 中并将其用作您的源服务器。 @MarkB 嗯好吧,只有一种出路.. 很难解释这种情况。无论如何,非常感谢您的回答..!

以上是关于我可以将图像直接从客户端浏览器上传到 CloudFront 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Cloudinary 推荐用法

使用 JavaScript 从客户端浏览器上传到 Google Cloud Storage

将图像从 opencv 上传到 s3 存储桶

避免使用云端未签名图像上传自动上传?

Flutter - 将图像上传到 Firebase 存储

在 IOS 上使用 AWS AppSync 将图像上传到 S3