Переименуйте ключ, используя boto3 в том же контейнере s3 - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь переназначить загруженные файлы, чтобы они переместились из папки «temp-uploads» в папку «new-uploads».

Пока это моя попытка -- Я не получаю ошибки, но файлы все еще находятся в «temp-uploads»

  bucket = s3.Bucket(s3_bucket)
    temp_prefix = 'temp-uploads/' + packageInstance.prefix + '/'
    new_prefix = 'new-uploads/' + packageInstance.prefix + '/'
    for obj in bucket.objects.filter(Prefix=temp_prefix):
        old_source = {'Bucket': bucket,
                      'Key': obj.key}
        new_key = obj.key.replace(temp_prefix, new_prefix)
        new_obj = bucket.Object(new_key)
        new_obj.copy(old_source)

1 Ответ

0 голосов
/ 01 октября 2018

Похоже, что этот файл копируется из temp-uploads/ в new-uploads/, поэтому старый файл все еще существует в старом месте.

Затем файлы, загруженные Django, сохраняются как ссылки в формате FileField.Это означает, что Django генерирует URL из ранее загруженного файла.Если файл перемещается в область за пределами Django, он не может знать, что это произошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...