База знаний LinxCloud Services

Операции с объектами

После предварительных настроек можно начать работу с объектами S3.

 

Загрузка объекта

Объект можно загрузить в бакет при помощи команды:

import boto3
session = boto3.session.Session()
s3_client = session.client(
    service_name='s3',
    endpoint_url='https://hb.bizmrg.com'
)


test_bucket_name = 'boto3-test-bucket-name'


#Загрузка данных из строки
s3_client.put_object(Body='TEST_TEXT_TEST_TEXT', Bucket=test_bucket_name, Key='test_file.txt')


#Загрузка локального файла
s3_client.upload_file('some_test_file_from_local.txt', test_bucket_name, 'copy_some_test_file.txt')


#Загрузка локального файла в директорию внутри бакета
s3_client.upload_file('some_test_file_from_local.txt', test_bucket_name, 'backup_dir/copy_some_test_file.txt')

Узнать больше о командах PUT_OBJECT и UPLOAD_FILE можно в официальной документации библиотеки boto3 по методам PUT и UPLOAD.

 

Копирование объектов между бакетами

Запустить процесс копирования объектов между бакетами можно с помощью команды:

import boto3
session = boto3.session.Session()
s3_client = session.client(
    service_name='s3',
    endpoint_url='https://hb.bizmrg.com'
)


source_bucket_name = 'boto3-source-bucket-name'
source_path = 'object_key1.txt'
target_bucket_name = 'boto3-target-bucket-name'
target_path = 'backup/copy_object_key1.txt'


copy_source = {
    'Bucket': source_bucket_name,
    'Key': source_path
}


s3_client.copy(copy_source, target_bucket_name, target_path)

О команде COPY можно прочитать в официальной документации библиотеки boto3.

 

Получение объекта

Чтобы получить объект из бакета нужно воспользоваться командой:

import boto3
session = boto3.session.Session()
s3_client = session.client(
    service_name='s3',
    endpoint_url='https://hb.bizmrg.com'
)


response = s3_client.get_object(Bucket='boto3-bucket-name-test', Key='object_name.txt')
print(response)
print(response['Body'].read())

О команде GET_OBJECT можно прочитать в официальной документации библиотеки boto3.

 

Получение списка объектов

Чтобы получить список объектов в бакете следует воспользоваться командой:

import boto3
session = boto3.session.Session()
s3_client = session.client(
    service_name='s3',
    endpoint_url='https://hb.bizmrg.com'
)


test_bucket_name = 'boto3-test-bucket-name'


for key in s3_client.list_objects(Bucket=test_bucket_name)['Contents']:
    print(key['Key'])

Подробнее о команде LIST_OBJECT можно прочитать в официальной документации библиотеки boto3.

 

Удаление объекта

Для удаления объекты следует воспользоваться командой:

import boto3
session = boto3.session.Session()
s3_client = session.client(
    service_name='s3',
    endpoint_url='https://hb.bizmrg.com'
)


test_bucket_name = 'boto3-test-bucket-name'


#Удаление одного объекта
s3_client.delete_object(Bucket='boto3-bucket-name-test', Key='object_name.txt',)


#Удаление множества объектов
object_to_delete = [{'Key':'objectkey1.txt'}, {'Key':'objectkey2.txt'}]
s3_client.delete_objects(Bucket=test_bucket_name, Delete={'Objects': object_to_delete})

Полную информацию о команде DELETE_OBJECTS можно прочитать в официальной документации библиотеки boto3.
Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!