Подключение к определенному пути в s3 - PullRequest
1 голос
/ 29 марта 2019

Я пытаюсь подключиться к определенной папке в s3, используя пример Python: s3://main_folder/sub_folder1/sub_folder2/

# want to enter sub_folder2 - s3://main_folder/sub_folder1/sub_folder2/
import boto3

def connect_to_s3():
    s3_cli = boto3.resourse('s3')
    bucket = s3_cli.Bucket('sub_folder2')
    for b in bucket.objects.all():
        print(b.key)

Я получаю эту ошибку:

повысить error_class (parsed_response, имя_операции) botocore.errorfactory.NoSuchBucket: при вызове операции ListObjects произошла ошибка (NoSuchBucket): указанный интервал не существует

1 Ответ

1 голос
/ 29 марта 2019

Ошибка говорит: The specified bucket does not exist

Это потому, что s3_cli.Bucket('sub_folder2') хочет имя Bucket , но вы указали имя папки и не назвали имя корзины.

Если вы хотите выполнять операции только с подмножеством сегмента, вы можете использовать filter с prefix:

import boto3

def connect_to_s3():
    s3_cli = boto3.resourse('s3')
    bucket = s3_cli.Bucket('my-bucket')
    for b in bucket.objects.filter(Prefix='sub_folder1/sub_folder2/').all():
        print(b.key)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...