[英]Rename key using boto3 within the same s3 bucket
我正在嘗試重新加密上傳的文件,以便它們從“臨時上傳”的“文件夾”移動到“新上傳”的“文件夾”。
到目前為止,這是我的嘗試---我沒有收到錯誤,但文件仍處於“ 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)
這似乎會將實際文件從temp-uploads/
復制到new-uploads/
,因此舊文件仍然存在於舊位置。
然后,由Django上傳的文件作為參考存儲在FileField
。 這意味着Django從先前上傳的文件生成URL。 如果文件在Django外部的存儲桶中移動,則無法知道它發生了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.