我有一个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
但是想不出盒子。我可以获得打印所需输出的帮助吗?
答案 0 :(得分:3)
使用:
print(obj.key)
您可能希望将子文件夹从正面拉出。
答案 1 :(得分:1)
如果您执行打印(obj.key),它将使您到达那里。
答案 2 :(得分:1)
最后添加此内容,它将打印
print (obj.get("Key").split("/")[1])