簡體   English   中英

AWS S3 使用不同的憑證將 object 從一個存儲桶復制到另一個存儲桶

[英]AWS S3 copy object from one bucket to another with different credentials

有沒有辦法使用 php 將 object 從一個存儲桶復制到另一個具有不同憑據的存儲桶? 因為源存儲桶的憑證與目標存儲桶不同。 我可以做的一件事是 getObject() 並保存它然后 putObject()。 有什么直接的方法嗎?

原則上,您可以創建兩個具有不同憑據的 S3 客戶端,然后使用一個下載 object,另一個上傳數據。 這樣做的缺點是,所有數據都將下載到您的計算機並再次上傳,這可能會占用大量帶寬。 如果您正在處理大型對象,那么將該數據存儲在 memory 中可能會成為一個問題。

如果您可以控制帳戶中的目標存儲桶和角色/用戶,則有更好的選擇。 在這種情況下,您可以在目標存儲桶上設置存儲桶策略,以允許源帳戶中的用戶在存儲桶上使用 PutObject + CopyObject。 然后,您還需要將這些權限添加到源帳戶中的用戶。 之后,您可以使用CopyObject API 調用直接將對象從源存儲桶復制到目標存儲桶,而無需先下載它們。 我建議在 CopyObject 調用中包含 ACL BucketOwnerFullControl ,否則您可能無法訪問目標帳戶中的 object。

暫無
暫無

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

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