【问题标题】:Access the Object Keys of all the files inside a specific subfolder of s3 bucket访问 s3 存储桶的特定子文件夹中所有文件的对象键
【发布时间】:2019-08-21 20:34:58
【问题描述】:

我有一个 s3 存储桶,里面有很多子文件夹。 我只想打印特定子文件夹“abcxyz”中所有文件的键 在那个桶里面

使用以下代码成功获取该子文件夹的文件:

import boto3, os, sys
from botocore.client import Config


# Removed my credentials here on StackOverflow
ACCESS_KEY_ID = ''
ACCESS_SECRET_KEY = ''
BUCKET_NAME = ''


s3 = boto3.resource(
    's3',
    aws_access_key_id=ACCESS_KEY_ID,
    aws_secret_access_key=ACCESS_SECRET_KEY,
    config=Config(signature_version='s3v4')
)

my_bucket = s3.Bucket(BUCKET_NAME) 
for obj in my_bucket.objects.filter(Prefix=Folder_name + '/'):
    print(obj)

它给我的输出是:

s3.ObjectSummary(bucket_name='', key='abcxyz/1.jpg')
s3.ObjectSummary(bucket_name='', key='abcxyz/2.jpg')
s3.ObjectSummary(bucket_name='', key='abcxyz/3.jpg')
.
.
.

等等..(这里去掉了桶名)

我只想打印所有文件的键名,例如:

abcxyz/1.jpg
abcxyz/2.jpg
abcxyz/3.jpg
.
.
.

参考链接:

https://alexwlchan.net/2017/07/listing-s3-keys/

Accessing a specific key in a s3 bucket using boto3

但无法跳出框框思考。我可以帮助我打印所需的输出吗?

【问题讨论】:

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


    【解决方案1】:

    用途:

    print(obj.key)
    

    你可能想把子文件夹从前面串起来。

    【讨论】:

      【解决方案2】:

      如果您执行 print(obj.key),它应该可以到达那里。

      【讨论】:

        【解决方案3】:

        最后加上这个,它会打印出来

        print (obj.get("Key").split("/")[1])
        

        【讨论】:

          猜你喜欢
          • 2011-09-21
          • 1970-01-01
          • 2021-08-21
          • 1970-01-01
          • 2016-10-29
          • 2019-01-25
          • 2017-03-19
          • 2018-04-19
          • 1970-01-01
          相关资源
          最近更新 更多