amazon-web-services - 使用 lambda 从外部 s3 存储桶下载文件
问题描述
我想使用 lambda 从外部 s3 帐户下载备份文件。我有访问密钥 ID、秘密访问密钥、存储桶名称和区域名称。然后将其与我的私有 s3 存储桶同步。可能吗?如何?
解决方案
看来您的要求是:
- 获取存储
Bucket-A
在Account-A
Bucket-B
将其复制到Account-B
最简单的方法是使用该CopyObject()
命令,因为它可以直接在存储桶之间(甚至在区域之间!)传输数据,而无需下载和上传。
为此,您将需要一组对 具有读取权限Bucket-A
和写入权限的凭据Bucket-B
。这可以是:
- 可以读取
User-A
的IAM和允许写入的存储桶策略,或者Account-A
Bucket-A
Bucket-B
User-A
Bucket-B
- 可以写入
User-B
的IAM和允许读取访问权限的存储桶策略Account-B
Bucket-B
Bucket-A
User-B
使用存储桶策略意味着一组凭据可以使用该CopyObject()
命令进行读取和写入。否则,您需要使用一组凭据来下载对象并使用另一组凭据来上传对象。这不是一个聪明的方法。
运行复制命令的最简单方法是使用AWS 命令行界面 (CLI) aws s3 cp
或aws s3 sync
命令。在您的情况下,如果您希望同步文件的内容,您可以使用aws s3 sync
.
最后一个选项是使用跨区域复制 - Amazon Simple Storage Service,但这仅适用于不同区域的存储桶。存储桶可以属于不同的 AWS 账户。
推荐阅读
- tensorflow - 批处理结束后如何更改 Tensorflow 中的学习率?
- python - 在 python 包 install_requires 中指定“或”
- python - seaborn FacetGrid 垂直轴上的分层标签
- python - Python 到 C++ 通信失败
- python - 如何从 SymPy 中提取椭圆的中心坐标、高度、宽度和 phi 以绘制拟合椭圆?
- ignite - 如何为使用 Apache Ignite 的无状态服务挂载卷
- macos - 未加载库:在 Clion Editor 上执行 Valgrind 时 /usr/lib/libc++.1.dylib
- regex - HIVE - 从字符串列中获取所有匹配的文本
- c# - PDPSharp 图表位置和背景
- mysql - 如何使用 laravel 社交名流通过 facebook 登录?