Обновлен список городов - теперь он не в базе данных, а в статических объектах. Обновлена работа с медиа - теперь их можно полноценно загружать и скачивать с сервера.
This commit is contained in:
41
api/api_media_utils.py
Normal file
41
api/api_media_utils.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import boto3
|
||||
import os
|
||||
|
||||
print("[DEBUG] boto3 init...")
|
||||
__session = boto3.session.Session()
|
||||
__s3 = __session.client(
|
||||
service_name='s3',
|
||||
endpoint_url='https://storage.yandexcloud.net'
|
||||
)
|
||||
|
||||
__bucket = os.getenv('AWS_DEFAULT_BUCKET')
|
||||
|
||||
|
||||
def s3_upload_from_buffer(filename: str, data: bytes):
|
||||
# Загрузить объекты в бакет
|
||||
|
||||
## Из строки
|
||||
__s3.put_object(Bucket=__bucket, Key=filename, Body=data)
|
||||
|
||||
|
||||
def s3_upload_from_file(s3_filename: str, target_file: str):
|
||||
## Из файла
|
||||
__s3.upload_file(target_file, __bucket, s3_filename)
|
||||
|
||||
|
||||
# # Получить список объектов в бакете
|
||||
# for key in __s3.list_objects(Bucket='bucket-name')['Contents']:
|
||||
# print(key['Key'])
|
||||
|
||||
|
||||
def s3_delete(files):
|
||||
forDeletion = [{'Key': 'object_name'}, {'Key': 'script/py_script.py'}]
|
||||
# Удалить несколько объектов
|
||||
response = __s3.delete_objects(Bucket='bucket-name', Delete={'Objects': forDeletion})
|
||||
|
||||
|
||||
def s3_get(file: str):
|
||||
# Получить объект
|
||||
return __s3.get_object(Bucket=__bucket, Key=file)['Body'].read()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user