Как я могу получить тот же результат этой команды bash в python?
Я пытался использовать list_objects_v2 из boto3, но мне не нужны все объекты, а только следующие имена файлов.
С параметрами Bucket, Prefix и StartAfter он возвращает ключ всех объектов на этом пути, я имею в виду, что если префикс и startafter равны «a/b/», мне не нужны все a/b/c/whatever.csv, я просто хочу список этих разных 'c'.
Похоже, вы хотите исключить префиксный путь из списка объектов.
Имя (ключ) объектов в Amazon S3 включает их полный путь. Поэтому можно просто удалить префикс из ключа:
import boto3
s3_resource = boto3.resource('s3')
PREFIX = 'mykey/'
for object in s3_resource.Bucket('my-bucket').objects.filter(Prefix=PREFIX):
print(object.key[len(PREFIX):]) # This skips-over the prefix
Вот эквивалент с использованием boto3.client
:
import boto3
s3_client = boto3.client('s3')
PREFIX = 'mykey/'
response = s3_client.list_objects_v2(Bucket='my-bucket', Prefix=PREFIX)
for object in response['Contents']:
print(object['Key'][len(PREFIX):]) # This skips-over the prefix
Что ты имеешь в виду? Как именно вы использовали
list_objects_v2
?