【问题标题】:s3cmd : copy file from encrypted buckets in s3 to local machines3cmd :将文件从 s3 中的加密存储桶复制到本地计算机
【发布时间】:2015-10-30 00:01:11
【问题描述】:

我想从 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

【问题讨论】:

    标签: amazon-web-services encryption amazon-s3 s3cmd


    【解决方案1】:

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

    例如aws s3 cp &lt;s3_path&gt; &lt;local_path&gt;

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

    【讨论】:

    • 我正在通过 python 代码执行这个命令。我有一个要复制的文件列表,所以不能使用 CLI。
    • @psycho:AWS Command-Line Interface (CLI) 是一个类似于s3cmd 的应用程序,所以如果你可以使用它,那么你也可以使用 CLI。如果您希望在 Python 代码中合并命令,请使用 boto
    【解决方案2】:

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

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

    1.使用s3cmd --configure选项

    2.修改主目录中的.s3cfg配置文件。

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-23
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 2017-07-06
        • 2019-08-07
        • 2011-07-08
        • 2020-12-10
        相关资源
        最近更新 更多