2015-08-27 115 views

回答

1

亞馬遜S3是一個對象存儲,而不是一個文件系統。它有一組特定的API用於上傳,列出,下載等,但它不像一般的文件系統。

有一些實用工具,可以安裝S3作爲一個文件系統(如ExpandriveCloudberry Drives3fs),但會在後臺這些實用程序實際上是翻譯請求到API調用。這可能會導致一些問題 - 例如,您可以通過將一個文件寫入磁盤來修改本地磁盤上的100MB文件。如果你想修改S3上的一個字節,你必須再次上傳整個對象。這可能會導致計算機和S3之間的同步問題,因此建議不要在生產環境中使用這些方法。 (不過,他們上載的好方法/下載初始數據。)

良好的在兩者之間選擇是使用AWS Command-Line Interface (CLI),其中有這樣的命令如aws s3 cpaws s3 sync,這是上傳/下載可靠的方法/與Amazon S3同步文件。

回答您的問題...

亞馬遜S3不支持 「軟連接」(符號鏈接)。 Amazon S3是一個對象存儲,而不是文件系統,因此它只包含對象。對象還可以具有經常用於緩存控制,重定向,分類等的元數據。

Amazon S3不支持目錄(排序)。 Amazon S3對象保存在存儲桶中,並且存儲桶是「扁平」的 - 它們不包含目錄/子文件夾。但是,它確實保持目錄的錯覺。例如,如果文件bar.jpg存儲在foo目錄中,則該對象的密鑰(文件名)爲foo/bar.jpg。這使對象「出現」在foo目錄中,但這不是它的存儲方式。 AWS管理控制檯通過允許用戶創建和打開文件夾來保持這種幻覺,但實際數據是「平坦」存儲的。

這導致了一些有趣的行爲:

  • 你並不需要創建一個目錄來存儲對象在目錄中。 目錄不存在。只需保存一個名爲images/cat.jpg的文件和images目錄神奇地出現(即使它不存在)。
  • 您無法重命名對象。密鑰(文件名)是該對象的唯一標識符。要「重命名」某個對象,必須將其複製到新的密鑰並刪除原始對象。
  • 您無法重命名目錄。他們不存在。相反,重命名目錄中的所有對象(這意味着您必須複製對象,然後刪除它們的舊版本)。
  • 您可能會創建一個目錄但看不到它。 Amazon S3跟蹤CommonPrefixes以幫助按路徑列出對象,但它不創建傳統目錄。所以,如果你創建一個(僞裝)目錄然後沒有看到它,請不要擔心。只需使用全路徑名稱存儲您的對象,並且該目錄將「出現」。

當允許安裝Amazon S3存儲桶時,上述實用程序將所有這些考慮在內。他們將'普通'文件系統命令轉換爲Amazon S3 API調用,但是它們不能做所有事情(例如,他們可能會模擬重命名文件,但通常不會讓您重命名目錄)。