共用方式為


使用 Azure 資料箱磁碟保留檔案 ACL、屬性和時間戳記

Azure 資料箱磁碟可讓您在將資料傳送至 Azure 時保留存取控制清單 (ACL)、時間戳記和檔案屬性。 本文說明將資料複製到資料箱磁碟,以上傳至Azure 檔案儲存體時可傳輸的中繼資料。

傳輸的中繼資料

ACL、時間戳記和檔案屬性是將資料從資料箱磁碟上傳至 Azure 檔案儲存體時所傳輸的中繼資料。 在本文中,ACL、時間戳記和檔案屬性統稱為中繼資料

您可以使用 Windows 資料複製工具來複製中繼資料。 將資料傳送至 Blob 儲存體時,不會保留中繼資料。

本文的後續各節會詳細討論當資料箱磁碟中的資料上傳至 Azure 檔案儲存體時,時間戳記、檔案屬性和 ACL 的傳輸方式。

時間戳記

會傳送下列時間戳記:

  • CreationTime
  • LastWriteTime

不會傳輸下列時間戳記:

  • LastAccessTime

檔案屬性

除非另有說明,否則會傳輸檔案和目錄上的檔案屬性。

會傳輸下列檔案屬性:

  • FILE_ATTRIBUTE_READONLY (僅檔案)
  • FILE_ATTRIBUTE_HIDDEN
  • FILE_ATTRIBUTE_SYSTEM
  • FILE_ATTRIBUTE_DIRECTORY (僅目錄)
  • FILE_ATTRIBUTE_ARCHIVE
  • FILE_ATTRIBUTE_TEMPORARY (僅檔案)
  • FILE_ATTRIBUTE_NO_SCRUB_DATA

不會傳輸下列檔案屬性:

  • FILE_ATTRIBUTE_OFFLINE
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED

不會傳輸目錄上的唯讀屬性。

替代資料流程和擴充屬性

Azure 檔案儲存體、分頁 Blob 或區塊 Blob 儲存體不支援替代資料流和擴充屬性,因此複製資料時不會傳輸這些資料。

ACL

視使用的傳輸方法以及您是否使用 Windows 或 Linux 用戶端而定,檔案和資料夾的部分或所有任意和預設存取控制清單 (ACL) 可能會在資料複製到 Azure 檔案儲存體期間傳輸。

注意

系統不會複製具有包含條件式存取控制項目 (ACE) 字串的檔案。 這是已知的問題。 若要解決此問題,請掛接共用,然後使用支援複製 ACL 的複製工具以手動方式將這些檔案複製到 Azure 檔案儲存體共用。

複製資料和中繼資料

若要傳輸資料的 ACL、時間戳記和屬性,請使用下列程式將資料複製到資料箱。

Windows 資料複製工具

若要將資料複製到資料箱磁碟,請使用檔案複製工具,例如 robocopy。 下列範例命令會複製所有檔案和目錄,連同資料一起傳輸中繼資料。

robocopy <Source> <Target> * /copyall /e /dcopy:DAT /B /r:3 /w:60 /is /nfl /ndl /np /MT:32 or 64 /fft /log+:<LogFile>

where

選項 描述
/copyall 複製所有屬性。
/e 複製子目錄,包含空目錄。
/dcopy:DAT 複製資料、屬性和時間戳記。 注意:/dcopy:DAT 選項必須用來在目錄上傳輸 CreationTime
/B 以備份模式複製檔案。
/r:3 指定複製失敗可重試 3 次。
/w:60 指定重試之間的等候時間為 60 秒。
/is 包含相同的檔案。
/nfl 不會記錄檔名稱。
/ndl 不會記錄目錄名稱。
/np 不會顯示複製作業的進度。
/MT:32 or 64 使用多執行緒,搭配 32 或 64 個執行緒。
/fft 為任何檔案系統降低時間戳記細微性。
/log+:<LogFile> 將輸出附加至現有的記錄檔。

如需這些 robocopy 參數的詳細資訊,請參閱教學課程:透過 SMB 將資料複製到 Azure 資料箱

注意

如果您使用 /copyall 來複製資料,目錄和檔案上的來源 ACL 會傳輸到 Azure 檔案儲存體。 如果您只有來源資料的讀取權限而且無法修改來源資料,則您只有資料箱磁碟中資料的讀取權限。 只有在您想要複製目錄和檔案上的所有 ACL 和資料時使用 /copyall

使用 Robocopy 列出、複製、修改資料箱磁碟上的檔案

以下是使用 robocopy 複製資料時使用的一些常見案例。

  • 只將資料複製到資料箱磁碟,而非目錄和檔案上的 ACL

    僅使用 /dcopy:DAT 選項複製資料、屬性、時間戳記。 不會複製目錄和檔案上的 ACL。

  • 將目錄和檔案上的資料和 ACL 複製到資料箱磁碟

    使用 /copyall 複製所有來源資料,包括目錄和檔案上的所有 ACL。

  • 使用 Robocopy 列出資料箱磁碟上的檔案系統

    使用此命令來列出目錄內容:

    robocopy <source-dir> NULL /l /s /xx /njh /njs /fp /B

    請注意,檔案總管不允許列出這些檔案。

  • 複製或刪除資料箱磁碟上的資料夾和檔案

    使用此命令複製單一檔案:

    robocopy <source-dir> <destination-dir> <file-name> /B

    使用此命令刪除單一檔案:

    robocopy <source-dir> <destination-dir> <file-name> /purge /B

    在上述命令中,<source-dir> 不應該擁有檔案:<file-name>。 然後,上述命令會將目的地與來源同步處理,進而從目的地移除檔案。

    請注意,檔案總管可能無法執行上述作業。

如需詳細資訊,請參閱使用 Robocopy 命令

Linux 資料複製工具

在 Linux 中傳輸中繼資料的流程分為兩步驟。 首先,您會使用 rsync 這類工具複製來源資料,但不會複製中繼資料。 複製資料之後,您可以使用 smbcaclscifsacl 這類工具來複製中繼資料。

下列範例命令會執行第一個步驟,使用 rsync 複製資料。

cp -aR /etc /opt/ 
rsync -avP /etc /opt (-a copies a directory)

下一步