【问题标题】:How to access a file on Amazon S3 from the Command Line?如何从命令行访问 Amazon S3 上的文件?
【发布时间】:2015-01-23 16:14:53
【问题描述】:

问题:

有没有一种简单的方法可以直接从命令行访问存储在 Amazon S3 上的数据文件?

动机:

我松散地关注online tutorial,作者链接到以下网址:

s3://bml-data/churn-bigml-80.csv

这是一个简单的 csv 文件,但我无法使用我的网络浏览器或 curl 打开它。本教程使用 BigML 打开它,但我想自己下载数据。一些谷歌搜索告诉我,有许多专为 S3 访问而设计的 python 和 Scala 库......但更直接地打开或下载文件会非常好。

我使用 Mac 并且是自制软件的忠实粉丝,因此(对我而言)完美的解决方案可以在这个系统上运行。

额外问题:

有什么好方法可以查看 Amazon E3 存储桶(我拥有)的内容吗?

文件的性质(特定数据集的 80%)让我怀疑可能有一个 churn-bigml-20.csv 文件隐藏在某个地方。我的自动方法是尝试卷曲/打开预期的文件......第一个问题的解决方案将允许我检查这种预感,但以一种丑陋的方式。如果有人知道远程探索特定 S3 存储桶内容的方法,那将非常有用。同样,探索 google 和 SO 告诉我有 are libraries 用于此,但更直接的方法会很有用。

【问题讨论】:

    标签: macos amazon-s3 terminal homebrew


    【解决方案1】:

    AWS Command Line Interface (CLI) 是管理 AWS 服务的统一工具,包括访问存储在 Amazon S3 中的数据。

    AWS 命令​​行界面适用于 Windows、Mac 和 Linux。

    如果桶拥有者已经授予ListBucket的公共权限,那么你可以列出桶的内容,例如:

    aws s3 ls s3://bml-data
    

    如果存储桶所有者已授予GetObject 的公共权限,则您可以复制对象:

    aws s3 cp s3://bml-data/churn-bigml-80.csv churn-bigml-80.csv
    

    这两个命令都对我有效。

    另见:

    【讨论】:

    • 这太棒了!也可以使用 brew 安装 aws:brew install awscli
    【解决方案2】:

    有一个名为s3cmd 的简洁工具可以做到这一点。

    • 它适用于 Mac(使用自制软件包管理器)
    • 它可以让您从 Amazon S3 下载到本地计算机
    • 它可以让您浏览 Amazon S3 存储桶(即使您不拥有它们)

    安装和设置

    brew install s3cmd
    

    配置 s3cmd 需要您拥有 amazon s3 帐户。这是免费的,但您需要注册here

    s3cmd --configure
    

    配置涉及指定您的访问/秘密密钥对以及其他一些细节(我对所有内容都使用了默认值)。如果您想使用 HTTPS,那么您可以使用 brew 安装 gpg,并在此时设置更多配置选项。请注意 - 您使用的 gpg_passphrase 存储在本地纯文本配置文件中!

    用途:

    现在是激动人心的一点:将我的文件下载到桌面!

    s3cmd get s3://bml-data/churn-bigml-80.csv ~/Desktop
    

    列出远程存储桶的内容:

    s3cmd ls s3://bml-data/
    

    附加功能:

    这超出了问题的范围,但似乎值得一提:s3cmd 可以执行其他操作,例如将 put 数据放入存储桶(并使用 -P 标志将其公开)、删除文件并显示手册以获取更多信息资料:

    s3cmd -P put ~/Desktop/my-file.png  s3://mybucket/
    s3cmd del s3://mybucket/my-file-to-delete.png
    man s3cmd
    

    学分:

    感谢 Neil Gee 提供关于 s3cmd 的教程。

    【讨论】:

      【解决方案3】:

      如果您只想在 linux 终端中下载文件,则必须将文件设为公开。

      仅供参考:每个人都可以访问以下一项或全部内容:读取此对象、读取和写入权限。

      一旦完成。右键单击文件>>下载为>>然后您可能会看到一个弹出窗口。

      右击下载链接,选择“复制链接位置。>>然后将其粘贴到记事本上。然后选择问号前的链接,例如。

      https://s3-ap-nrtheast-1.amazonws.com/backup/pan.hosting/2017-01-15/earth.tar.gz?response-content-disposition=attachment&X-Amz-Security-Token=%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwTEigAJ4GvimzYt3gQegUHaRSe%2BnLWeND%

      然后在您的命令终端上输入以下命令。

      wget https://s3-ap-nrtheast-1.amazonws.com/backup/pan.hosting/2017-01-15/earth.tar.gz

      【讨论】:

        猜你喜欢
        • 2021-11-25
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 2015-04-08
        • 1970-01-01
        • 2019-09-18
        相关资源
        最近更新 更多