好的,第一件事;我知道 S3 沒有“目錄”,它們都是碰巧具有相同 Key 前綴的物件,名稱中帶有斜杠……因此,無需評論或回答 S3 沒有目錄!
雖然,很多軟體都在“檢測”帶有斜杠的密鑰作為目錄,我們使用的 SFTP 服務器軟體就是其中之一。我們托管一個 SFTP 服務器,它使用 AWS S3 作為“檔案系統”,其中有一個帶有“目錄”的存盤桶,存盤桶根目錄中的每個目錄都是 SFTP 用戶主目錄。
問題是 AWS 正在洗掉空的“目錄”(以斜杠結尾的零位元組物件),因此如果 SFTP 用戶洗掉了他們的所有檔案(或者他們尚未收到任何檔案),AWS 會洗掉“目錄”,然后有一個當用戶嘗試連接到我們的 SFTP 時,由于目錄已消失,用戶會出錯。
一個明顯的解決方案是添加一個“阻止程式”檔案,例如readme.txt或類似于“目錄”的檔案,所以那里有一些東西,但大多數客戶端似乎也洗掉了這些……還有一些其他的東西可能會“鎖定”(例如,物件鎖定)檔案不會被洗掉,但這反過來又會導致 SFTP 客戶端出現錯誤,如果他們嘗試洗掉所有檔案,我們希望避免拋出錯誤(并顯示不必要的檔案)...
那么,有什么辦法可以防止 AWS S3 洗掉空的“目錄”?
uj5u.com熱心網友回復:
如果您通過s3api(而不是s3)創建目錄- 它不會被洗掉。
例如,
aws s3api put-object --bucket mybucket --key home/user1/
然后您可以從該目錄復制和洗掉檔案
我不知道 SFTP 是如何作業的,但是如果您在 AWS 控制臺或 WinSCP 中單擊“創建檔案夾”按鈕,就會發生這種情況。我認為 SFTP 有類似的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/371303.html
下一篇:“GetObject時發生錯誤。S3錯誤代碼:PermanentRedirect。S3錯誤訊息:存盤桶在此區域:us-east-1
