Обновлен список городов - теперь он не в базе данных, а в статических объектах. Обновлена работа с медиа - теперь их можно полноценно загружать и скачивать с сервера.

This commit is contained in:
2023-03-28 14:10:28 +03:00
parent d4158ae1c0
commit a9d3a34c0b
8 changed files with 207 additions and 86 deletions

41
api/api_media_utils.py Normal file
View 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()