建立檔案

Create File 作業會建立新的檔案或取代檔案。 當您呼叫 Create File時,您只會初始化檔案。 若要將內容新增至檔案,您可以呼叫 Put Range 作業。

通訊協定可用性

已啟用檔案共享通訊協定 可用
SMB 是
NFS 無

請求

您可以執行下列動作來建構 Create File 要求。 建議您使用 HTTPS。

方法 要求 URI HTTP 版本
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

將要求 URI 中顯示的路徑元件取代為您自己的路徑元件,如下表所述:

路徑元件 描述
myaccount 記憶體帳戶的名稱。
myshare 檔案共享的名稱。
mydirectorypath 自選。 要建立檔案之目錄的路徑。 如果省略目錄路徑,則會在指定的共用內建立檔案。

如果指定目錄,則必須先存在於共用內,才能建立檔案。
myfile 要建立的檔名。

如需路徑命名限制的相關信息,請參閱 名稱和參考共用、目錄、檔案和元數據

URI 參數

您可以在要求 URI 上指定下列其他參數:

參數 描述
timeout 自選。 timeout 參數是以秒為單位來表示。 如需詳細資訊,請參閱 設定檔案服務作業的逾時。

要求標頭

下表說明必要和選擇性的要求標頭:

要求標頭 描述
Authorization 必填。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求
Datex-ms-date 必填。 指定要求的國際標準時間 (UTC) 時間。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求
x-ms-version 所有已授權要求的必要專案。 指定要用於此要求的作業版本。 如需詳細資訊,請參閱 Azure 記憶體服務的版本設定
Content-Length 自選。 如果存在,則必須為零。
x-ms-content-length: byte value 必填。 此標頭會指定檔案的大小上限,最多 4 個字節 (TiB)。
Content-Typex-ms-content-type 自選。 檔案的MIME內容類型。 預設類型為 application/octet-stream
Content-Encodingx-ms-content-encoding 自選。 指定哪些內容編碼已套用至檔案。 當 取得檔案 作業在檔案資源上執行時,這個值會傳回給用戶端,而且您可以使用它來譯碼檔案內容。
Content-Languagex-ms-content-language 自選。 指定此資源所使用的自然語言。
Cache-Controlx-ms-cache-control 自選。 Azure 檔案記憶體會儲存此值,但不會使用或修改此值。
x-ms-content-md5 自選。 設定檔案的 MD5 哈希。
x-ms-content-disposition 自選。 設定檔案的 Content-Disposition 標頭。
x-ms-type: file 必填。 標頭設定為 file
x-ms-meta-name:value 自選。 與檔案相關聯的名稱/值組做為元數據。 中繼資料名稱必須遵循 C# 識別子的命名規則,

附註:無法從伺服器消息塊 (SMB) 用戶端存取透過 Azure 檔案服務指定的檔案元數據。
x-ms-file-permission: { inherit ¦ <SDDL> ¦ <binary> } 在 2019-02-02 到 2021-04-10 版中,如果未指定 x-ms-file-permission-key,則需要此標頭。 自 2021-06-08 版起,這兩個標頭都是選擇性的。 此許可權是base64編碼 二進位安全性描述元格式中,安全性描述元定義語言 (SDDL) 中所指定之檔案的安全性描述元 或 (2024-11-04 版或更新版本)。 您可以指定要與 x-ms-file-permission-format 標頭搭配使用的格式。 如果許可權大小是 8 kibibytes (KiB) 或更少,您可以使用此標頭。 否則,您可以使用 x-ms-file-permission-key。 如果您指定標頭,它必須具有擁有者、群組和 選擇性存取控制清單 (DACL)。 您可以傳遞值 inherit,以繼承自父目錄。
x-ms-file-permission-format: { sddl ¦ binary } 自選。 版本 2024-11-04 或更新版本。 指定傳入 x-ms-file-permission 的值是否為 SDDL 或二進位格式。 如果 x-ms-file-permission-key 設定為 inherit,則不應該設定此標頭。 如果 x-ms-file-permission-key 設定為 inherit以外的任何其他值,而且如果未設定此標頭,則會使用 sddl 的預設值。
x-ms-file-permission-key: <PermissionKey> 在 2019-02-02 到 2021-04-10 版中,如果未指定 x-ms-file-permission,則需要此標頭。 自 2021-06-08 版起,這兩個標頭都是選擇性的。 如果未指定這兩個標頭,則會針對 x-ms-file-permission 標頭使用 inherit 的預設值。

您可以呼叫 Create Permission API 來建立金鑰。
x-ms-file-attributes 必要:版本 2019-02-02 到 2021-04-10。 選用:版本 2021-06-08 和更新版本。 此標頭包含要設定於檔案上的檔案系統屬性。 如需詳細資訊,請參閱可用屬性的清單。 預設值為 None
x-ms-file-creation-time: { now ¦ <DateTime> } 必要:版本 2019-02-02 到 2021-04-10。 選用:版本 2021-06-08 和更新版本。 檔案的國際標準時間 (UTC) 建立時間屬性。 now 的值可用來指出要求的時間。 預設值為 now
x-ms-file-last-write-time: { now ¦ <DateTime> } 必要:版本 2019-02-02 到 2021-04-10。 選用:版本 2021-06-08 和更新版本。 國際標準時間 (UTC) 檔案的最後寫入屬性。 您可以使用 now 值來指出要求的時間。 預設值為 now
x-ms-lease-id: <ID> 如果檔案具有使用中租用,則為必要專案。 適用於 2019-02-02 版和更新版本。
x-ms-client-request-id 自選。 提供客戶端產生的不透明值,其中包含設定記錄時記錄的 1-kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱 監視 Azure 檔案服務
x-ms-file-change-time: { now ¦ <DateTime> } 自選。 版本 2021-06-08 和更新版本。 國際標準時間 (UTC) 會以 ISO 8601 格式變更檔案的時間屬性。 您可以使用 now 值來指出要求的時間。 預設值為 now
x-ms-file-request-intent 如果 Authorization 標頭指定 OAuth 令牌,則為必要項。 可接受的值為 backup。 如果 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在指派給使用 Authorization 標頭授權的身分識別中,則此標頭指定應授與 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action。 適用於 2022-11-02 版和更新版本。
x-ms-allow-trailing-dot: { <Boolean> } 自選。 版本 2022-11-02 和更新版本。 布爾值會指定是否應該修剪要求 URL 中的尾端點。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和元資料

要求本文

沒有。

範例要求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile HTTP/1.1  
  
Request Headers:  
x-ms-version: 2020-02-10
x-ms-date: Mon, 27 Jan 2014 22:41:55 GMT  
Content-Type: text/plain; charset=UTF-8  
x-ms-content-length: 1024  
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  
  

回應

回應包含 HTTP 狀態代碼和一組響應標頭。

狀態代碼

成功的作業會傳回狀態代碼 201 (已建立)。

如您需狀態代碼的相關資訊,請參閱 狀態和錯誤碼

回應標頭

此作業的回應包含下表所述的標頭。 回應也可以包含額外的標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格,

回應標頭 描述
ETag ETag 包含值,表示檔案的版本。 值會以引弧括住。
Last-Modified 傳回上次修改檔案的日期和時間。 日期格式遵循 RFC 1123。 如需詳細資訊,請參閱 代表標頭中的日期/時間值

修改目錄或其屬性的任何作業會更新上次修改的時間。 檔案上的作業不會影響目錄的上次修改時間。
x-ms-request-id 可唯一識別已提出並可用於對要求進行疑難解答的要求。 如需詳細資訊,請參閱針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的 Azure 檔案服務版本。
Date 服務所產生的 UTC 日期/時間值,表示起始響應的時間。
x-ms-request-server-encrypted: true/false 版本 2017-04-17 和更新版本。 如果您已使用指定的演算法成功加密要求的內容,此標頭的值會設定為 true。 如果加密失敗,則值會 false
x-ms-file-permission-key 檔案許可權的索引鍵。
x-ms-file-attributes 檔案上的檔案系統屬性。 如需詳細資訊,請參閱可用屬性的清單。
x-ms-file-creation-time UTC 日期/時間值,表示檔案的建立時間屬性。
x-ms-file-last-write-time UTC 日期/時間值,表示檔案的最後一個寫入時間屬性。
x-ms-file-change-time 代表檔案變更時間屬性的UTC日期/時間。
x-ms-file-file-id 檔案的檔案識別碼。
x-ms-file-parent-id 檔案的父檔案標識碼。
x-ms-client-request-id 用來針對要求及其對應的回應進行疑難解答。 如果此標頭存在於要求中,則這個標頭的值等於 x-ms-client-request-id 標頭的值,而且值包含不超過 1,024 個可見的 ASCII 字元。 如果要求中沒有 x-ms-client-request-id 標頭,它就不會出現在回應中。

回應本文

沒有。

範例回應

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Mon, 27 Jan 2014 23:00:12 GMT  
ETag: "0x8CB14C3E29B7E82"  
Last-Modified: Mon, 27 Jan 2014 23:00:06 GMT  
x-ms-version: 2014-02-14  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授權

只有帳戶擁有者可以呼叫這項作業。

檔案系統屬性

屬性 Win32 檔案屬性 定義
ReadOnly FILE_ATTRIBUTE_READONLY 唯讀的檔案。 應用程式可以讀取檔案,但無法寫入或刪除檔案。
隱藏 FILE_ATTRIBUTE_HIDDEN 檔案已隱藏。 它不包含在一般目錄清單中。
系統 FILE_ATTRIBUTE_SYSTEM 操作系統使用 部分或獨佔使用的檔案。
沒有 FILE_ATTRIBUTE_NORMAL 未設定其他屬性的檔案。 此屬性只有在單獨使用時才有效。
檔案 FILE_ATTRIBUTE_ARCHIVE 檔案是封存盤案。 應用程式通常會使用這個屬性來標記檔案以進行備份或移除。
臨時 FILE_ATTRIBUTE_TEMPORARY 用於暫存記憶體的檔案。
離線 FILE_ATTRIBUTE_OFFLINE 檔案的數據無法立即取得。 此文件系統屬性主要是為了提供與 Windows 的相容性。 Azure 檔案服務不支援離線記憶體選項。
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 檔案不會由內容索引服務編製索引。
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA 背景數據完整性掃描器不會 讀取 的用戶數據流。 此文件系統屬性主要是為了提供與 Windows 的相容性。

言論

若要建立新的檔案,請先呼叫 Create File 並指定其大小上限,最多 4 TiB 來初始化它。 當您執行這項作業時,請勿在要求本文中包含內容。 建立檔案之後,請呼叫 Put Range,將內容新增至檔案或修改它。

您可以呼叫 Set File Properties來變更檔案的大小。

如果共用或父目錄不存在,則作業會失敗,狀態代碼為 412(前置條件失敗)。

注意

cache-controlcontent-typecontent-md5content-encodingcontent-language 的檔案屬性與 SMB 用戶端可用的檔案系統屬性不同。 SMB 用戶端無法讀取、寫入或修改這些屬性值。

若要建立檔案,如果現有的檔案具有作用中的租用,客戶端必須在要求上指定有效的租用標識符。 如果用戶端未指定租用標識碼或指定無效的租用標識符,Azure 檔案服務會傳回狀態代碼 412 (前置條件失敗)。 如果用戶端指定租用標識碼,但檔案沒有使用中租用,則 Azure 檔案服務也會在此實例中傳回狀態代碼 412 (前置條件失敗)。 如果用戶端在尚未存在的檔案上指定租用標識符,Azure 檔案會針對針對 2019-02-02 版和更新版本提出的要求傳回狀態代碼 412 (前置條件失敗)。

如果具有使用中租用的現有檔案被 Create File 作業覆寫,租用會保存在更新的檔案上,直到發行為止。

共用快照集不支援 Create File,這是共用的唯讀複本。 嘗試在共用快照集上執行這項作業失敗,狀態代碼為 400 (InvalidQueryParameterValue)。

另請參閱

Azure 檔案服務 上的 作業