Использование не-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.