【问题标题】:Uploading Files to S3 using AWS CLI使用 AWS CLI 将文件上传到 S3
【发布时间】:2020-03-30 23:53:16
【问题描述】:

我是 AWS CLI 的新手,需要将文件从 Linux 服务器上传到 S3。以下是我的用例:

输入目录具有基于当前日期在服务器上创建文件夹的结构,例如:/users/data/20200329/users/data/20200330

每个文件夹包含多个子文件夹:

/users/data/20200329/govt/inbound/truey.gz   
/users/data/20200329/corp/inbound/672695.gz
/users/data/20200330/govt/inbound/dddd.gz   
/users/data/20200330/corp/inbound/4444.gz

我想像这样上传到 S3:

s3://bucketname/20200329/truey.gz
s3://bucketname/20200329/672695.gz
s3://bucketname/20200330/dddd.gz
s3://bucketname/20200330/4444.gz

同样如此。

所以简而言之,我不想要 S3 中的子文件夹,而只想要单个日期文件夹,其中包含输入目录中提到的子文件夹中的所有文件。如何使用 AWS CLI 实现这一目标?

【问题讨论】:

  • 怀疑aws s3 sync 在这里会有所帮助。请查看文档或可用帮助 (aws s3 sync help)。

标签: amazon-web-services amazon-s3 aws-cli


【解决方案1】:

将文件放入特定路径的逻辑超出了 AWS CLI 可以确定的范围

您需要发出单独的命令:

aws s3 cp /users/data/20200329/govt/inbound/truey.gz s3://bucketname/20200329/truey.gz 
aws s3 cp /users/data/20200329/corp/inbound/672695.gz s3://bucketname/20200329/672695.gz
aws s3 cp /users/data/20200330/govt/inbound/dddd.gz s3://bucketname/20200330/dddd.gz  
aws s3 cp /users/data/20200330/corp/inbound/4444.gz s3://bucketname/20200330/4444.gz

如果您想对应该上传文件的位置应用某种形式的逻辑,我建议您编写一个脚本(例如在 Python 中):

  • 列出输入文件
  • 使用一些字符串操作来提取相关位
  • 发出upload_file() API 调用以将文件上传到所需位置

【讨论】:

    【解决方案2】:

    这将处理一天内的所有文件:

    aws s3 cp /users/data/20200329/govt/inbound/ \
              s3://bucketname/20200329 \
              --recursive 
    aws s3 cp /users/data/20200329/corp/inbound/ \
              s3://bucketname/20200329 \
              --recursive 
    

    如果您想迭代月份中的几天等等:

    #!/bin/bash
    
    #requires Bash 4.0+ to pad leading 0 in day number
    for day in {01..31};
    do
       aws s3 cp /users/data/20200329/govt/inbound/ \
                s3://bucketname/202003$day \
                --recursive 
       aws s3 cp /users/data/20200329/corp/inbound/ \
                s3://bucketname/202003$day \
                --recursive 
    done
    

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 2018-07-07
      相关资源
      最近更新 更多