Создание файла

Операция Create File создает новый файл или заменяет файл. Эта операция поддерживается в версии 2025-05-05 и более поздних версий для общих папок с включенным протоколом NFS. При вызове Create Fileфайл инициализируется только. Чтобы добавить содержимое в файл, вызовите операцию Put Range. Начиная с версии 2026-02-06, вы также можете создавать файл с содержанием до 4 МиБ с помощью Create File операции.

Доступность протокола

Протокол общей папки с включенным доступом Доступный
SMB Да
NFS Да

Просьба

Запрос Create File создается следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS.

Метод URI запроса ВЕРСИЯ HTTP
ПОСТАВИТЬ https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

Замените компоненты пути, отображаемые в URI запроса собственным, как описано в следующей таблице:

Компонент path Описание
myaccount Имя учетной записи хранения.
myshare Имя общей папки.
mydirectorypath Необязательный. Путь к каталогу, в котором создается файл. Если путь к каталогу опущен, файл создается в указанной общей папке.

Если указан каталог, он уже должен существовать в общей папке, прежде чем создать файл.
myfile Имя создаваемого файла.

Сведения об ограничениях именования путей см. в разделе Имя и справочные ресурсы, каталоги, файлы и метаданные.

Параметры URI

Можно указать следующие дополнительные параметры в URI запроса:

Параметр Описание
timeout Необязательный. Параметр timeout выражается в секундах. Дополнительные сведения см. в разделе Настройка времени ожидания операций службы файлов.

Заголовки запросов

Обязательные и необязательные заголовки запросов описаны в следующих таблицах:

Общие заголовки запросов

Заголовок запроса Описание
Authorization Обязательно. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
Date или x-ms-date Обязательно. Указывает время универсального времени (UTC) для запроса. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
x-ms-version Требуется для всех авторизованных запросов. Указывает версию операции, используемой для этого запроса. Эта операция поддерживается в версии 2025-05-05 и более поздних версий для общих папок с включенным протоколом NFS.

Дополнительные сведения см. в разделе Управление версиями служб хранилища Azure.
Content-Length Указывает количество байтов, передаваемых в тексте запроса. Версия 2019-02-02 по 2025-11-05: Опционально. Должно быть равно нулю, если присутствует. Версия 2026-02-06 или позже: Обязательно, если содержимое включено в тело запроса.

Если содержимое отсутствует, а заголовок включён, то его значение должно быть равным нулю. Если размер файла, указанного в x-ms-content-length заголовке, меньше Content-Length, операция неудачна с кодом ошибки 400.
x-ms-content-length: byte value Обязательно. Этот заголовок задает максимальный размер файла до 4 тбибайтов (TiB).
Content-MD5 Необязательный. Поддерживается в версии 2026-02-06 и выше. Хэш MD5 содержимого. Этот хэш используется для проверки целостности данных во время транспорта. Когда указывается заголовок Content-MD5, Azure Files сравнивает хэш пришедшего содержимого с отправленным значением заголовка. Если два хэша не соответствуют, операция завершается ошибкой с кодом 400 (недопустимый запрос).
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#.

Примечание. Метаданные файлов, указанные с помощью файлов Azure, недоступны из клиента SMB.
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 и более поздних версий.

Этот заголовок игнорируется, если файл находится в общей папке с включенным протоколом NFS, который не поддерживает аренду файлов.
x-ms-client-request-id Необязательный. Предоставляет созданное клиентом непрозрачное значение с ограничением символов 1-kibibyte (KiB), записанным в журналах при настройке ведения журнала. Настоятельно рекомендуется использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в статье Monitor Azure Files.
x-ms-file-request-intent Требуется, если заголовок Authorization указывает токен OAuth. Допустимое значение равно backup. Этот заголовок указывает, что Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action или Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action следует предоставить, если они включены в политику RBAC, назначенную удостоверению, авторизованному с помощью заголовка Authorization. Доступно для версии 2022-11-02 и более поздних версий.
x-ms-allow-trailing-dot: { <Boolean> } Необязательный. Версия 2022-11-02 и более поздних версий. Логическое значение указывает, следует ли обрезать конечную точку в URL-адресе запроса.

Этот заголовок игнорируется, если целевой объект находится в общей папке с включенным протоколом NFS, который поддерживает конечную точку по умолчанию.

Дополнительные сведения см. в разделе Именование и ссылки на общие папки, каталоги, файлы и метаданные.
x-ms-structured-body Требуется, если формат сообщения тела запроса структурирован. Значение этого заголовка содержит версию схемы сообщений и свойства.

В настоящее время единственное поддерживаемое значение — XSM/1.0; properties=crc64, указывающее, что запрос использует сегменты контрольной суммы crc64 в закодированном сообщении. Если значение не совпадает с этим, операция заканчивается с кодом ошибки 400 (Плохой запрос). Запрос также не будет выполнен, если содержание, предоставленное в запросе, не совпадает с предоставленной контрольной суммой для данного сегмента. Доступно для версии 2026-06-06 и новее. Поддерживается только для запросов с длиной содержания больше нуля.
x-ms-structured-content-length Требуется, если формат сообщения тела запроса структурирован, то есть x-ms-structured-body указан вместе с запросом. Значение этого заголовка — это длина содержимого файла и всегда будет меньше Content-Length значения заголовка из-за кодирования сообщений.

Если значение заголовка не совпадает с длиной блока, указанного в запросе, операция заканчивается с ошибкой 400 (Плохой запрос). Доступно для версии 2026-06-06 и новее.

Только заголовки запросов SMB

Заголовок запроса Описание
x-ms-file-change-time: { now ¦ <DateTime> } Необязательный. Версия 2021-06-08 и более поздних версий. Свойство времени изменения времени в формате ISO 8601 (UTC) изменится в формате ISO 8601. Значение now можно использовать для указания времени запроса. Значение по умолчанию — now.
x-ms-file-permission: { inherit ¦ <SDDL> ¦ <binary> } В версии 2019-02-02–2021-04-10 этот заголовок требуется, если x-ms-file-permission-key не указан. По состоянию на версию 2021-06-08 оба заголовка являются необязательными. Это разрешение является дескриптором безопасности для файла, указанного в языке определения дескриптора безопасности (SDDL) или (версия 2024-11-04 или более поздней) в формате дескриптора безопасности в кодировке Base64 в формате дескриптора двоичной безопасности . Можно указать формат, используемый с заголовком x-ms-file-permission-format. Этот заголовок можно использовать, если размер разрешений составляет 8 кибибайт (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 задано значение inherit, этот заголовок не должен быть задан. Если x-ms-file-permission задано любое другое значение, отличное от inherit, и если этот заголовок не задан, используется значение по умолчанию sddl.
x-ms-file-permission-key: <PermissionKey> В версии 2019-02-02–2021-04-10 этот заголовок требуется, если x-ms-file-permission не указан. По состоянию на версию 2021-06-08 оба заголовка являются необязательными. Если ни заголовок не указан, значение по умолчанию inherit используется для заголовка x-ms-file-permission.

Ключ можно создать, вызвав API Create Permission.
x-ms-file-attributes Обязательный: версия 2019-02-02–2021-04-10. Необязательно: версия 2021-06-08 и более поздняя. Этот заголовок содержит атрибуты файловой системы, которые необходимо задать в файле. Дополнительные сведения см. в списке доступных атрибутов . Значение по умолчанию — None.
x-ms-file-property-semantics: { New ¦ Restore } Необязательный. Поддерживается в версии 2026-02-06 и выше. Значение по умолчанию — New.

New / Restore Семантика корректирует способ применения x-ms-file-permission заголовка к файлу. Когда x-ms-file-permission заголовок установлен на inherit, эти семантики не влияют на разрешение файла. Когда конкретное разрешение указывается с x-ms-file-permission помощью заголовка, New семантика использует стандартные правила создания файлов win32 и может применять немного другое разрешение, указанное на основе разрешений родительского каталога, тогда Restore как семантика использует стандартную семантику обновления и присваивает разрешение файлу точно так, как указано.

New семантика также добавляет атрибут Archive в файл, даже если это не указано в x-ms-file-attributes заголовке.

Только заголовки запросов NFS

Заголовок запроса Описание
x-ms-mode Необязательный. Версия 2025-05-05 и более поздних версий. Биты режима, которые необходимо задать в файле. Режим представлен в 12-разрядном числовом формате или символьном формате rwx. Значение по умолчанию — 0644. См. разрешения на файл POSIX (режим).
x-ms-owner Необязательный. Версия 2025-05-05 и более поздних версий. Идентификатор пользователя (UID) владельца файла, который необходимо задать в файле. Значение по умолчанию — 0 (root).
x-ms-group Необязательный. Версия 2025-05-05 и более поздних версий. Идентификатор группы (GID) владельца файла, который нужно задать в файле. Значение по умолчанию — 0 (корневая группа).
x-ms-file-file-type Необязательный. Версия 2025-05-05 и более поздних версий. Тип файла. Должно быть "Регулярным", если он присутствует.

Текст запроса

Ни одно из них Content-Length равно нолю. Требуется, если Content-Length заголовок установлен на ненулевый. Это поддерживается в версии 2026-02-06 и более позднее. Количество байт, указанных в теле запроса и заголовке Content-Length, должно совпадать для выполнения операции создания файла с данными. Максимальное количество байт, которые можно указать в теле запроса, составляет 4 МиБ.

Пример запроса

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=  

Примерный запрос с Content-Length заголовком

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/myfile HTTP/1.1  
  
Request Headers:  
x-ms-version: 2026-02-06
x-ms-date: Mon, 27 Jan 2014 22:41:55 GMT  
Content-Type: text/plain; charset=UTF-8  
x-ms-content-length: 1024
Content-Length: 512
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-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 Идентификатор родительского файла файла.
Content-MD5 Версия 2026-02-06 и выше. Этот заголовок возвращается, чтобы клиент смог проверить целостность содержимого сообщения. Значение этого заголовка вычисляется службой файлов.
x-ms-client-request-id Используется для устранения неполадок запросов и их соответствующих ответов. Значение этого заголовка равно значению заголовка x-ms-client-request-id, если оно присутствует в запросе, а значение содержит не более 1024 видимых символов ASCII. Если в запросе отсутствует заголовок x-ms-client-request-id, он отсутствует в ответе.

Заголовки ответов SMB только

Заголовок ответа Описание
x-ms-file-permission-key Версия 2019-02-02 и более поздних версий. Ключ разрешения файла.
x-ms-file-attributes Версия 2019-02-02 и более поздних версий. Атрибуты файловой системы файла. Дополнительные сведения см. в списке доступных атрибутов.

Заголовки ответов NFS только

Заголовок ответа Описание
x-ms-mode Версия 2025-05-05 и более поздних версий. Режим файла. См. разрешения на файл POSIX (режим).
x-ms-owner Версия 2025-05-05 и более поздних версий. Идентификатор пользователя (UID) владельца файла.
x-ms-group Версия 2025-05-05 и более поздних версий. Идентификатор группы (GID) владельца файла.
x-ms-file-file-type Версия 2025-05-05 и более поздних версий. Тип файла, возможное значение: "Regular".

Текст ответа

Никакой.

Пример ответа

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.

Разрешения ФАЙЛА POSIX (режим)

Разрешения POSIX-файла можно указать в 12-разрядном числовом формате или в символьном формате rwx. Примеры:

  • "0644" или "rw-r-r--": пользователь (владелец файла) имеет разрешение на чтение, запись. Группа имеет разрешение на чтение. Другие имеют разрешение на чтение.
  • "0755" или "rwxr-xr-x": пользователь (владелец файла) имеет разрешение на чтение, запись и выполнение. Группа имеет разрешение на чтение и выполнение. Другие имеют разрешение на чтение и выполнение.

Числовый восьмеричный формат

Три наименьших октальных числа представляют разрешения для владельца или пользователя, группы и других пользователей и указываются с помощью восьмеричного числа (0-7), сформированного с помощью побитового сочетания "4" (чтение), "2" (запись), "1" (выполнение). Наибольшее число порядка (0–7) используется для указания сочетания разрешений "4" (SetUID), "2" (SetGID), "1" (StickyBit).

Формат Разрешение
0700 Пользователь (владелец файла) имеет разрешение на чтение, запись и выполнение.
0400 У пользователя есть разрешение на чтение.
0200 У пользователя есть разрешение на запись.
0100 У пользователя есть разрешение на выполнение.
0070 Группа имеет разрешение на чтение, запись и выполнение.
0040 Группа имеет разрешение на чтение.
0020 Группа имеет разрешение на запись.
0010 Группа имеет разрешение на выполнение.
0007 Другие пользователи имеют разрешение на чтение, запись и выполнение.
0004 Другие имеют разрешение на чтение.
0002 Другие имеют разрешение на запись.
0001 Другие имеют разрешение на выполнение.
4000 Задайте эффективный идентификатор пользователя в файле.
2000 Задайте действующий идентификатор группы в файле.
1000 Задайте для указания, что файл можно удалить или переименовать только владельцем файла, владельцем каталога или корневым пользователем.

Символьный формат rwx

Разрешения для владельца или пользователя, группы и других пользователей указываются с помощью сочетания символов "r" (чтение), "w" (запись) и "x" (выполнение).

Формат Разрешение
rwx------ Пользователь (владелец файла) имеет разрешение на чтение, запись и выполнение.
r-------- У пользователя есть разрешение на чтение.
-w------- У пользователя есть разрешение на запись.
--x------ У пользователя есть разрешение на выполнение.
---rwx--- Группа имеет разрешение на чтение, запись и выполнение.
---r----- Группа имеет разрешение на чтение.
----w---- Группа имеет разрешение на запись.
-----x--- Группа имеет разрешение на выполнение.
------rwx Другие пользователи имеют разрешение на чтение, запись и выполнение.
------r-- Другие имеют разрешение на чтение.
-------w- Другие имеют разрешение на запись.
--------x Другие имеют разрешение на выполнение.

Замечания

Чтобы создать новый файл, сначала инициализируйте его, вызвав Create File и указав максимальный размер до 4 ТиБ. При выполнении этой операции не включайте содержимое в текст запроса. После создания файла вызовите Put Range добавить содержимое в файл или изменить его.

Начиная с версии 2026-02-06 и выше, вы можете создать файл с данными до 4 МиБ, предоставив контент в теле запроса. После того как вы создали файл с данными, позвоните Put Range , чтобы добавить дополнительные данные или изменить его. Максимальный размер созданного файла — до 4 TiB.

Размер файла можно изменить, вызвав Set File Properties.

Если общий ресурс или родительский каталог не существует, операция завершается ошибкой с кодом состояния 412 (сбой предварительных условий).

Заметка

Свойства файла cache-control, content-type, content-md5, content-encodingи content-language отличаются от свойств файловой системы, доступных клиентам SMB. Клиенты SMB не могут считывать, записывать или изменять эти значения свойств.

Чтобы создать файл, если существующий файл имеет активную аренду, клиент должен указать действительный идентификатор аренды для запроса. Если клиент либо не указывает идентификатор аренды, либо указывает недопустимый идентификатор аренды, Служба файлов Azure возвращает код состояния 412 (сбой предварительных условий). Если клиент указывает идентификатор аренды, но файл не имеет активной аренды, Служба файлов Azure возвращает код состояния 412 (сбой предварительных условий) в этом экземпляре. Если клиент указывает идентификатор аренды файла, который еще не существует, Служба файлов Azure возвращает код состояния 412 (предварительный сбой) для запросов, выполненных в версии 2019-02-02 и более поздних версиях.

Если существующий файл с активной арендой перезаписывается операцией Create File, аренда сохраняется в обновленном файле до тех пор, пока он не будет освобожден.

Create File не поддерживается в моментальном снимке общего ресурса, который является копией общего ресурса только для чтения. Попытка выполнить эту операцию на моментальном снимке общего ресурса завершается ошибкой с кодом состояния 400 (InvalidQueryParameterValue).

См. также

операции с файлами