s3cmd :将文件从 s3 中的加密存储桶复制到本地计算机

s3cmd : copy file from encrypted buckets in s3 to local machine

我想从 s3 中的加密存储桶下载文件。存储桶使用 AES256 加密。我正在使用以下命令

s3cmd --access_key=<access_key> --secret_key=<secret_key> get <s3_key_location> <target_loc>.

我读了s3 usage。它没有太大帮助。

如何指定从s3解密后下载文件的选项?

此外,由于存储桶已加密,此命令会创建一个虚拟文件,其名称与 s3 位置中存在的密钥同名,目标位置中的大小为 0。

这里要注意的一件重要事情是我正在使用 boto 来执行 运行 s3cmd 命令。

s3cmd 版本 1.5.2

你为什么不使用 aws 命令行?我想它对加密的 s3 存储桶有更好的支持。

例如aws s3 cp <s3_path> <local_path>

https://aws.amazon.com/cli/

因此,除了这个可选参数 --server-side-encryption,您还必须在配置 s3cmd 时提供加密释义。

不幸的是,我没有在 s3cmd 命令中找到任何可以覆盖加密释义中指定值的参数。有几种方法可以配置加密阶段:

1.using s3cmd --configure 选项

2.Modifying .s3cfg 配置文件存在于主目录中。

我正在寻找一个可以覆盖配置文件中给定值的参数。

示例:如果文件中的访问密钥是 A,而 运行 s3cmd 我指定 --access_key B。值 A 不会用于该命令执行的 s3cmd,但是当我们未指定访问密钥时,值 A 将始终使用。因此,如果还有用于加密副相的任何参数,请在此处 post。

使用服务器端加密 加密的Amazon S3 对象在检索时会自动解密。加密会影响数据在磁盘上的存储方式,但您永远不会看到 加密对象。

因此,只需正常下载文件即可。

顺便说一下,现在最好使用 AWS Command-Line Interface (CLI) 而不是 s3cmd

如果您希望通过 Python 下载,请使用 boto 函数:get_contents_to_file()