建立檔案
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 記憶體的要求。 |
Date 或 x-ms-date |
必填。 指定要求的國際標準時間 (UTC) 時間。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求。 |
x-ms-version |
所有已授權要求的必要專案。 指定要用於此要求的作業版本。 如需詳細資訊,請參閱 Azure 記憶體服務的版本設定。 |
Content-Length |
自選。 如果存在,則必須為零。 |
x-ms-content-length: byte value |
必填。 此標頭會指定檔案的大小上限,最多 4 個字節 (TiB)。 |
Content-Type 或 x-ms-content-type |
自選。 檔案的MIME內容類型。 預設類型為 application/octet-stream 。 |
Content-Encoding 或 x-ms-content-encoding |
自選。 指定哪些內容編碼已套用至檔案。 當 取得檔案 作業在檔案資源上執行時,這個值會傳回給用戶端,而且您可以使用它來譯碼檔案內容。 |
Content-Language 或 x-ms-content-language |
自選。 指定此資源所使用的自然語言。 |
Cache-Control 或 x-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/action 或 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在指派給使用 Authorization 標頭授權的身分識別中,則此標頭指定應授與 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action 或 Microsoft.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 | 背景數據完整性掃描器不會 讀取 |
言論
若要建立新的檔案,請先呼叫 Create File
並指定其大小上限,最多 4 TiB 來初始化它。 當您執行這項作業時,請勿在要求本文中包含內容。 建立檔案之後,請呼叫 Put Range
,將內容新增至檔案或修改它。
您可以呼叫 Set File Properties
來變更檔案的大小。
如果共用或父目錄不存在,則作業會失敗,狀態代碼為 412(前置條件失敗)。
注意
cache-control
、content-type
、content-md5
、content-encoding
和 content-language
的檔案屬性與 SMB 用戶端可用的檔案系統屬性不同。 SMB 用戶端無法讀取、寫入或修改這些屬性值。
若要建立檔案,如果現有的檔案具有作用中的租用,客戶端必須在要求上指定有效的租用標識符。 如果用戶端未指定租用標識碼或指定無效的租用標識符,Azure 檔案服務會傳回狀態代碼 412 (前置條件失敗)。 如果用戶端指定租用標識碼,但檔案沒有使用中租用,則 Azure 檔案服務也會在此實例中傳回狀態代碼 412 (前置條件失敗)。 如果用戶端在尚未存在的檔案上指定租用標識符,Azure 檔案會針對針對 2019-02-02 版和更新版本提出的要求傳回狀態代碼 412 (前置條件失敗)。
如果具有使用中租用的現有檔案被 Create File
作業覆寫,租用會保存在更新的檔案上,直到發行為止。
共用快照集不支援 Create File
,這是共用的唯讀複本。 嘗試在共用快照集上執行這項作業失敗,狀態代碼為 400 (InvalidQueryParameterValue)。
另請參閱
Azure 檔案服務 上的