Я использую django-хранилища с boto. Все работает нормально, если я позволяю хранилищам загружать файлы S3 в моей модели как общедоступные. Однако, когда я установил ACL для частного на сохранение/обновление я получаю сообщение об ошибкеdjango хранилища с boto используя пирват ACL броски 404 при сохранении
S3ResponseError: 404 Not Found
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message><Key>https:/s3.amazonaws.com/mahbuckit/mods/1366814943/1363379259-re6pc-x-l4d2-the-witch-psd-jpgcopy.zip</Key><RequestId>9631D1222C18F323</RequestId><HostId>bmMgn75bqITigKJWM7L7JrjN2TcsPCslOt9d3LX6WvzxWbHcdBfeqBIdFSZsmhXW</HostId></Error>
Это происходит на Добавить/обновить записи.
Это моя часть сохранения для модели, где у меня есть FileFIeld. Я переопределяю настройку acl на приватное.
def save(self, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
if self.file:
conn = boto.connect_s3(settings.AWS_ACCESS_KEY_ID,settings.AWS_SECRET_ACCESS_KEY)
bucket = conn.create_bucket(settings.AWS_STORAGE_BUCKET_NAME)
k = boto.s3.key.Key(bucket)
k.key = settings.MEDIA_URL + self.file.name
k.set_acl('private')
Однако файл сохраняет все в порядке. Это проклятые ошибки.
Где вы на самом деле положил содержимое файла на S3? Я не вижу, чтобы это происходило в коде выше. – garnaat
Я использую хранилища django. Он обрабатывает фактическую загрузку файла. – Vangel