Как перечислить все содержимое данного ключа на Amazon S3 с помощью Apache Libcloud? - PullRequest
0 голосов
/ 12 февраля 2019

Код для перечисления содержимого в S3 с использованием boto3 известен:

self.s3_client = boto3.client(
            u's3', 
            aws_access_key_id=config.AWS_ACCESS_KEY_ID, 
            aws_secret_access_key=config.AWS_SECRET_ACCESS_KEY, 
            region_name=config.region_name, 
            config=Config(signature_version='s3v4')
            )
        versions = self.s3_client.list_objects(Bucket=self.bucket_name, Prefix=self.package_s3_version_key)

Однако мне нужно перечислить содержимое на S3 с использованием libcloud.Я не смог найти его в документации.

1 Ответ

0 голосов
/ 19 февраля 2019

Если вы просто ищете все содержимое для определенного сегмента:

from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver

client = driver(StoreProvider.S3)
s3 = client(aws_id, aws_secret)

container = s3.get_container(container_name='name')
objects = s3.list_container_objects(container)

s3.download_object(objects[0], '/path/to/download')

Полученный objects будет содержать список всех ключей в этом блоке с именем файла, размером байта и метаданными.,Для загрузки вызовите метод download_object на s3 с полным объектом libcloud и вашим путем к файлу.

Если вы предпочитаете получать все объекты всех групп, измените get_container на list_containers без параметров.

Информация для всех методов драйвера: https://libcloud.readthedocs.io/en/latest/storage/api.html
Краткие примерыспецифично для s3: https://libcloud.readthedocs.io/en/latest/storage/drivers/s3.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...