簡體   English   中英

AWS S3 中是否有樂觀鎖定?

[英]Is there optimistic locking in AWS S3?

我在 s3 中有一個 excel 文件。 由於不同的程序讀寫它,我需要保證它們中的每一個都寫入它們讀取的版本。

S3僅保證新創建對象的寫入后讀取一致性,以及覆蓋和刪除對象的最終一致性。 如果您的excel文件足夠小(小於400kb),則可以將其存儲在DynamoDB項的二進制屬性中,並在version屬性上使用條件更新,以確保該文件的寫入后讀取一致性。 否則,如果文件大於400kb,則可以將文件的每個版本上載到s3中的新密鑰,然后在版本化的DynamoDB項目中將s3 URL跟蹤到文件的最新版本。

對於S3,這是不可能的。

具體來說,無法確定性和權威性地確定您是否可以看到當前版本是否正在被覆蓋,或者是否已經被最近覆蓋...因為正在進行的覆蓋操作不會干擾當前版本由於最終會采用覆蓋一致性模型,因此該操作已完成或不久后才完成。

當未啟用存儲桶版本控制時,甚至是這樣。 有時可能會覆蓋一個對象,並在覆蓋完成后的短暫時間內仍然下載以前的版本。

GETHEAD以及ListObjects最終都是一致的。

2020年開始AWS強一致,可以使用標准的HTTP header If-Match實現樂觀鎖。

https://aws.amazon.com/es/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/

暫無
暫無

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

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