【发布时间】:2020-12-19 08:00:09
【问题描述】:
我对使用 Amazon S3 进行图像存储有点陌生,只是想知道将大约 5,000 个(当前公开可用的)图像 URL 导入 S3 的最简单方法,以便最终结果是在我们的 S3 帐户上托管图像(并产生相同图像的新 URL)。
我想知道是否需要先在我的计算机上下载并保存每个图像,然后将生成的图像导入 S3(这当然会为这些图像生成新的 URL)?或者有没有更容易做到这一点。
感谢您的任何建议。
- 詹姆斯
【问题讨论】:
我对使用 Amazon S3 进行图像存储有点陌生,只是想知道将大约 5,000 个(当前公开可用的)图像 URL 导入 S3 的最简单方法,以便最终结果是在我们的 S3 帐户上托管图像(并产生相同图像的新 URL)。
我想知道是否需要先在我的计算机上下载并保存每个图像,然后将生成的图像导入 S3(这当然会为这些图像生成新的 URL)?或者有没有更容易做到这一点。
感谢您的任何建议。
【问题讨论】:
适用于 S3 的 AWS CLI 不支持将文件从远程 URL 复制到 S3,但您可以从本地 文件流 复制到 S3。
幸运的是,cURL 默认将 URL 的内容作为流输出,因此以下命令将通过本地计算机将远程 URL 流式传输到 S3 中的某个位置:
# The "-" means "stream from stdin".
curl https://example.com/some/file.ext | aws s3 cp - s3://bucket/path/file.ext
警告:虽然这不需要本地临时文件,但它确实通过运行命令的机器将所有文件字节作为中继发送到 S3。
为the S3 cp command 添加您需要的任何其他选项,例如--acl。
带有块管理的线程多部分传输可能会更高效,但如果您可以访问 CLI,这是一个快速的解决方案。
【讨论】:
S3 是一个“哑”的对象存储,这意味着它本身不能进行任何数据处理,包括但不限于下载文件。所以是的,您必须先下载您的对象,然后再将它们上传到 S3。
【讨论】: