【问题标题】:Copy folder with sub-folders and files from server to S3 using AWS CLI使用 AWS CLI 将包含子文件夹和文件的文件夹从服务器复制到 S3
【发布时间】:2019-10-19 03:03:40
【问题描述】:

我有一个文件夹,其中包含我从服务器获取并分配给变量的一堆子文件夹和文件。我想使用 boto3 将此数据上传到具有相同文件夹结构的 S3 存储桶。 文件夹结构:

└── main_folder
   ├── folder
    │   ├── folder
    │   │   ├── folder
    │   │   │   └── a.json
    │   │   ├── folder
    │   │   │   ├── folder
    │   │   │   │   └── b.json
    │   │   │   ├── folder
    │   │   │   │   └── c.json
    │   │   │   └── folder
    │   │   │       └── d.json
    │   │   └── folder
    │   │       └── e.json
    │   ├── folder
    │   │   └── f.json
    │   └── folder
    │       └── i.json
        try:
            for dirname in utils['BucketData']:
                cmd = ['aws', 's3', 'sync', dirname, 's3://{}/{}/'.format(input_bucket_name, folder_name)]
                sp = subprocess.run(cmd)
        except Exception as e:
            logger.debug('Command error: {}'.format(e))

变量详情:

utils['BucketData'] = It is data(mentioned is folder structure) which fetched from server. It is in dict form
dirname = fetching directories and copying to s3 location
input_bucket_name = Bucket name where my folder is located.
folder_name = where I want copy the data.

当我跑步时,我得到了

The user-provided path 'directory name' does not exist.

如何复制分配给 S3 中变量的具有相同文件夹结构的确切数据? 这里有什么问题?

【问题讨论】:

  • 我猜你的问题是'目录名'不是你的子进程当前工作目录中的文件夹(大概是你的主文件夹)。您可能应该使用绝对路径名。
  • 你能用aws s3 sync localdir "s3://yourbucket/dirname"吗?也许您需要添加--region=yourplace。
  • @walter-a,同步命令对我有用...谢谢!

标签: python-3.x amazon-web-services amazon-s3 boto3 aws-cli


【解决方案1】:

(首先作为评论给出,我不确定它是否可以解决问题。)

你可以使用

aws s3 sync localdir "s3://yourbucket/dirname"

也许您需要添加--region=yourplace。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多