Использование не-AWS S3 хранилища с Django?

У меня есть хранилище S3, которое не размещается в AWS. Я попробовал свою учетную запись AWS в качестве файлового хранилища, которая работала нормально, однако, когда я переключаю учетные данные на не-AWS провайдера, я получаю:

botocore.exceptions.ClientError: Произошла ошибка (403) при вызове операции HeadObject: Forbidden

>

в журналах django, и

ClientError at /admin/api/metabolomicsmzxml/add/ Произошла ошибка (403) при вызове операции HeadObject: Forbidden

>

отображается в браузере.

Я использую django-storages со следующей конфигурацией:q :

AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
AWSS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_REGION_NAME = 'ca-central-1'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
AWS_S3_VERIFY = True
AWS_ENDPOINT_URL = 'example.com:443'

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' 

Возможно ли использовать django-storages и boto3 с провайдером не-AWS? Есть ли другие пакеты, которые я должен попробовать?


Я пытался

AWS_S3_ENDPOINT_URL = 'example.com:443'

и

AWS_S3_ENDPOINT_URL = 'example.com'

тогда я получаю

ValueError: Неверная конечная точка: ...

Наконец-то сработало.

Мне пришлось изменить формат конечной точки S3 на:

'https://example.com'

И это работает! Теперь я могу использовать не-AWS S3 хранилище с django.

Вернуться на верх