簡體   English   中英

在同一s3存儲桶中使用boto3重命名密鑰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM