如果我將文件上載到S3並且文件名與存儲桶中對象的文件名相同,則會覆蓋它。有什麼選擇可以避免覆蓋具有相同文件名的文件?我在我的桶中啓用了版本控制,認爲它會解決問題,但對象仍然被覆蓋。Amazon S3避免覆蓋具有相同名稱的對象
回答
從上面我的意見不起作用。我認爲WRITE
ACL也適用於對象,但它只適用於桶。
由於您啓用了版本控制,您的對象不會被覆蓋。但是,如果您未在GET請求或URL中指定版本,則會採用最新版本。這意味着,當您將對象放入S3中時,您需要保存響應告訴您的versionID以便檢索第一個對象。
有關更多信息,請參見Amazon S3 ACL for read-only and write-once access。
謝謝!我會嘗試。 – CyberJunkie
您還可以配置具有有限權限的IAM用戶。寫入仍然是寫入(即更新),但使用IAM用戶無論如何都是最佳實踐。
所有者(即您的「長期訪問密鑰和密鑰」)始終擁有完全控制權,除非您完全無法完全禁用它。
謝謝我沒有想到這一點。如果我可以在AWS中進行設置,那麼無法更新/覆蓋的用戶將是理想選擇。 – CyberJunkie
您必須仔細檢查文檔。我不知道S3是否理解_write_和_update_之間的區別。我知道默認情況下(即完全權限),寫入和更新被視爲同一件事。 –
這是我的建議,如果您使用數據庫來存儲s3存儲桶中每個文件的密鑰。
生成一個隨機密鑰。 嘗試在允許空條目的UNIQUE約束的字段中插入/更新您的DB的密鑰。 如果失敗,則使用該密鑰,直到獲得唯一密鑰。
然後把你的文件放在s3上,你的密鑰,你知道是獨一無二的。
- 1. 避免覆蓋ArrayList中的對象
- 2. 下載具有相同名稱的附件而不覆蓋
- 3. 具有相同名稱和簽名的多個功能相互覆蓋?
- 4. 使用相同名稱的CSS覆蓋?
- 5. 使用循環的具有相同名稱的不同對象
- 6. 不同的javascript對象具有相同的屬性(名稱)
- 7. 匹配2具有相同實例名稱的不同對象
- 8. 所有對象具有相同的名稱
- 9. 如何避免javax.persistence.EntityExistsException:具有相同標識符的不同對象?
- 10. 如何避免顯示圖像具有相同的名稱只是刪除?
- 11. 存儲兩個具有相同名稱的變量的對象
- 12. 具有相同名稱
- 13. 具有相同名稱
- 14. 避免覆蓋在陣列
- 15. 避免CSS覆蓋引導
- 16. 避免覆蓋GAE版本
- 17. 避免被css覆蓋
- 18. 避免404頁面覆蓋
- 19. Spark避免分區覆蓋
- 20. 避免覆蓋斑點AZURE
- 21. 避免覆蓋S3文件使用Jquery-Fileupload
- 22. PHP文件上傳並覆蓋文件具有相同名稱的
- 23. NuGet - 不允許覆蓋軟件包(具有相同的名稱和版本號)
- 24. 如何正確顯示具有相同名稱的JSON對象
- 25. 如何合併具有相同名稱的JSON對象
- 26. ES6解構兩個對象具有相同的屬性名稱
- 27. 具有與對象屬性相同名稱的原型屬性
- 28. Erlang snmp MIB。兩個mib具有相同的名稱對象
- 29. 從庫中提取具有相同名稱的多個對象
- 30. 具有相同名稱的Concat對象數組
我不確定,但不能 您將ACL設置爲只讀此對象?我的意思是,爲你上傳的每個對象。 – Prinzhorn
我將ACL設置爲公開,因爲任何人都可以看到這些文件。 – CyberJunkie