簡體   English   中英

如何在同一個s3存儲桶中的文件夾之間移動文件?

[英]How to move files among folder in the same s3 bucket?

我正在嘗試將文件移動到同一個存儲桶中的另一個文件夾中,我的代碼沒有返回任何錯誤,但該文件夾尚未移動。 有一個文件夾名稱的空間。

s3 = boto3.resource('s3', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
copy_source = {
    'Bucket': 'bucket',
    'Key': 'config/L C/aa/bb/cc/Lab/xx.tgz'
}
s3.meta.client.copy(copy_source, 'bucket', 'config/L C/aa/bb/cc/Pilot/')

我想通了,它對我有用。 我沒有找到移動文件的直接方法,但先復制並粘貼然后刪除。

#copy first
s3 = boto3.resource('s3', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
copy_source = {
    'Bucket': 'bucket',
    'Key': 'xx/aa/m.tgz'
}
s3.meta.client.copy(copy_source, 'bucket', 'xx/bb/m.tgz')

#delete the orginal, but assert if the one has been moved
s3 = boto3.resource('s3', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
bucketname='pp'
bucket = s3.Bucket(bucketname)
key = 'xx/tt/m.tgz'
objs = list(bucket.objects.filter(Prefix=key))
if len(objs) > 0 and objs[0].key == key:
    print("exist")
    # here we delete the previous file
    session = boto3.session.Session()
    s3s = session.resource('s3', aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
    obj = s3s.Object(bucketname, "xx/bb/m.tgz")
    obj.delete()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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