【问题标题】:How to access files stored in s3 bucket from python program without use of boto3?如何在不使用boto3的情况下从python程序访问存储在s3存储桶中的文件?
【发布时间】:2019-04-22 15:29:57
【问题描述】:

我想访问存储在我的 s3 存储桶中的文件,该文件在 ec2 机器中运行 python 脚本。 Boto3 python 包促进了这一点,但是是否有其他方式可以访问存储在 s3 存储桶中的文件,只需提供 s3 存储桶的 url 而不是在 python 程序中导入 boto3 ?

【问题讨论】:

  • 是的,您可以创建包含 AWS 签名 per the documentation 的 GET 和 PUT 请求。为什么要这样做?

标签: python amazon-web-services amazon-s3 amazon-ec2


【解决方案1】:

AWS CLI 和 shell 脚本,而不是编写 python 应用程序和安装 boto3 是我最近所做的。我担心正在安装 python 版本并且不想安装 boto3,我们使用的是 Amazon Linux 的变体,它都将具有 AWS CLI 并且还将安装 jq 命令工具是绕过安装 boto3 的好方法。也可以用python来补充。我决定使用 shell 脚本,因为我的程序相对简单。

【讨论】:

  • 仅供参考,AWS CLI 在下面使用 boto,因为它是用 Python 编写的。
  • 它使用botocore,我也是这么想的,但是awscli只安装了botocore,所以botocore是一个选项。我不想花时间弄清楚 botocore 从哪里开始,boto3 从哪里开始。
  • @DiegoGoding 如果可能的话,你能分享你的代码吗?
【解决方案2】:

我会认真地质疑您为什么不想使用 Boto 来编写您的应用程序。但是,如果您不能将 Boto 作为依赖项包括在内,则解决方案是自己编写对 Amazon S3 的低级 API 调用。 Boto(作为所有 AWS 开发工具包)只是 HTTPS/JSON API 的“包装器”,允许您编写更少的代码行,无需手动管理 URL 签名过程,最终专注于您的业务逻辑而不是“接线”

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2021-08-21
    • 1970-01-01
    • 2022-01-09
    • 2015-11-02
    相关资源
    最近更新 更多