Поделиться через


Path - Create

Создание файла | Создание каталога | Переименование файла | Переименование каталога
Создание или переименование файла или каталога. По умолчанию назначение перезаписывается, и если назначение уже существует и имеет аренду, не работает. Обратите внимание, что переименование файла или каталога в контейнер с принудительной политикой шифрования контейнеров запрещено, если исходный контейнер также не имеет принудительной политики шифрования контейнеров, которая соответствует. Эта операция поддерживает условные HTTP-запросы. Дополнительные сведения см. в разделе Указание условных заголовков для операций службы BLOB-объектов. Чтобы завершиться ошибкой, если назначение уже существует, используйте условный запрос с параметром If-None-Match: "*".

PUT https://{accountName}.{dnsSuffix}/{filesystem}/{path}
PUT https://{accountName}.{dnsSuffix}/{filesystem}/{path}?resource={resource}&continuation={continuation}&mode={mode}&timeout={timeout}

Параметры URI

Имя В Обязательно Тип Описание
accountName
path True

string

Имя учетной записи хранения Azure.

dnsSuffix
path True

string

Суффикс DNS для конечной точки Azure Data Lake Storage.

filesystem
path True

string

Идентификатор файловой системы.

Шаблон регулярного выражения: ^[$a-z0-9](?!.*--)[-a-z0-9]{1,61}[a-z0-9]$

path
path True

string

Путь к файлу или каталогу.

continuation
query

string

Необязательный. При переименовании каталога число путей, переименованных при каждом вызове, ограничено. Если число путей, которые необходимо переименовать, превышает это ограничение, маркер продолжения возвращается в этом заголовке ответа. Когда маркер продолжения возвращается в ответе, его необходимо указать в последующем вызове операции переименования, чтобы продолжить переименование каталога.

mode
query

PathRenameMode

Необязательный. Допустимо только в том случае, если пространство имен включено. Этот параметр определяет поведение операции переименования. Значение должно быть "устаревшим" или "posix", а значение по умолчанию будет "posix".

resource
query

PathResourceType

Требуется только для создания файла и создания каталога. Значение должно быть "file" или "directory".

timeout
query

integer

int32

Необязательное значение времени ожидания операции в секундах. Период начинается при получении запроса службой. Если значение времени ожидания истекает до завершения операции, операция завершается ошибкой.

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

Media Types: "application/octet-stream"

Имя Обязательно Тип Описание
Cache-Control

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа "Cache-Control" для операций чтения файла для операций чтения файла.

Content-Encoding

string

Необязательный. Указывает, какие кодировки содержимого были применены к файлу. Это значение возвращается клиенту при выполнении операции чтения файла.

Content-Language

string

Необязательный. Указывает естественный язык, используемый целевой аудиторией для файла.

Content-Disposition

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Content-Disposition для операций чтения файла.

x-ms-cache-control

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Cache-Control для операций чтения файла.

x-ms-content-type

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Content-Type для операций чтения файла.

x-ms-content-encoding

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Content-Encoding для операций чтения файла.

x-ms-content-language

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Content-Language для операций чтения файла.

x-ms-content-disposition

string

Необязательный. Служба сохраняет это значение и включает его в заголовок ответа Content-Disposition для операций чтения файла.

x-ms-rename-source

string

Необязательный файл или каталог для переименования. Значение должно иметь следующий формат: "/{filesystem}/{path}" или "/{filesystem}/{path}?sastoken" при использовании маркера SAS. Если задано значение x-ms-properties, свойства перезаписывают существующие свойства; в противном случае существующие свойства будут сохранены. Это значение должно быть строкой, закодированной по URL-адресу. Обратите внимание, что строка может содержать только символы ASCII в наборе символов ISO-8859-1.

x-ms-lease-id

string

Необязательный. Идентификатор аренды для пути, указанного в URI. Путь для перезаписи должен иметь активную аренду, и идентификатор аренды должен соответствовать.

Шаблон регулярного выражения: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$

x-ms-source-lease-id

string

Необязательно для операций переименования. Идентификатор аренды для исходного пути. Исходный путь должен иметь активную аренду, а идентификатор аренды должен соответствовать.

Шаблон регулярного выражения: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$

x-ms-properties

string

Необязательный. Определяемые пользователем свойства, хранящиеся в файле или каталоге, в формате пары имен и значений с разделим запятыми "n1=v1, n2=v2, ...", где каждое значение является строкой в кодировке Base64. Обратите внимание, что строка может содержать только символы ASCII в наборе символов ISO-8859-1.

x-ms-permissions

string

Необязательный и допустимый, только если иерархическое пространство имен включено для учетной записи. Задает разрешения доступа POSIX для владельца файла, группы владельцев файлов и других пользователей. Каждому классу может быть предоставлено разрешение на чтение (4), запись (2) или разрешение на выполнение (1). Поддерживаются символьная нотация (rwxrw-rw-) и 4-разрядная восьмеричная нотация (например, 0766). Липкий бит также поддерживается и в символьной нотации, его представлено буквой t или T в окончательном месте символов в зависимости от того, установлен ли бит выполнения для другой категории или не настроен соответственно (например, rwxrw-rw- с липким битом представлен как rwxrw-rwT. Rwxrw-rwx с липким битом представлен как rwxrw-rwt), отсутствие t или T указывает, что липкий бит не задан. В 4-разрядной октационной нотации его представлено 1-й цифрой (например, 1766 представляет rwxrw-rw- с липкой битой и 0766 представляет rwxrw-rw- без липкой биты). Недопустимо в сочетании с x-ms-acl.

x-ms-umask

string

Необязательный и допустимый, только если иерархическое пространство имен включено для учетной записи. При создании файла или каталога и родительской папки нет ACL по умолчанию, umask ограничивает разрешения создаваемого файла или каталога. Полученное разрешение предоставляется p & ^u, где p — это разрешение, и вы — umask. Например, если значение p равно 0777 и вы 0057, то результирующее разрешение равно 0720. Разрешение по умолчанию — 0777 для каталога и 0666 для файла. Значение umask по умолчанию — 0027. Umask должен быть указан в 4-разрядной нотации (например, 0766).

x-ms-owner

string

Необязательный и допустимый, только если иерархическое пространство имен включено для учетной записи. Задает владельца файла или каталога.

x-ms-group

string

Необязательный и допустимый, только если иерархическое пространство имен включено для учетной записи. Задает группу владельцев файла или каталога.

x-ms-acl

string

Необязательный и допустимый, только если иерархическое пространство имен включено для учетной записи. Задает права управления доступом POSIX для файлов и каталогов. Каждая запись управления доступом (ACE) состоит из области, типа, идентификатора пользователя или группы и разрешений в формате "[область:][тип]:[id]:[разрешения]". Область должна быть "по умолчанию", чтобы указать, что ACE принадлежит ACL по умолчанию для каталога; в противном случае область неявна, а ACE принадлежит доступу к ACL. Существует четыре типа ACE: "пользователь" предоставляет права владельцу или именованного пользователя, "группа" предоставляет права на владение группе или именованной группе, "маска" ограничивает права, предоставленные именованным пользователям и членам групп, а "другие" предоставляют права всем пользователям, не найденным в других записях. Идентификатор пользователя или группы не указан для записей типа "маска" и "другое". Идентификатор пользователя или группы также опущен для владельца и группы владельца. Поле разрешений — это 3-символьная последовательность, в которой первый символ — R для предоставления доступа на чтение, второй символ — W для предоставления доступа на запись, а третий символ — x для предоставления разрешения на выполнение. Если доступ не предоставлен, символ "-" используется для обозначения того, что разрешение запрещено. Например, следующий ACL предоставляет права на чтение, запись и выполнение прав владельца файла и john.doe@contoso, право на чтение для группы владельцев и ничего другого: "user::rwx,user:john.doe@contoso:rwx,group::r--,other:---,mask=rwx". Недопустимо в сочетании с разрешениями x-ms-.

x-ms-proposed-lease-id

string

Необязательный. Укажите предлагаемый идентификатор аренды, если вы хотите получить аренду во время создания файла или каталога. Аренда будет приобретена с помощью этого идентификатора аренды, если создание выполнено успешно.

Шаблон регулярного выражения: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$

x-ms-expiry-option

string

Необязательный и допустимый только в том случае, если иерархическое пространство имен включено для учетной записи и поддерживается только в файлах. Укажите один из следующих вариантов истечения срока действия, если вы хотите задать время окончания срока действия файла во время создания. "RelativeToNow" Задайте срок действия относительно текущего времени. Пользователь будет передавать количество миллисекундах, прошедших с этого момента. Абсолютное время в формате RFC 1123. Neverexpire" Задайте для файла срок действия, срок действия которого не требуется указывать с помощью этого параметра.

x-ms-expiry-time

string

Необязательный и допустимый только в том случае, если иерархическое пространство имен включено для учетной записи и поддерживается только в файлах. Укажите время истечения срока действия, когда истекает срок действия файла. Если задано значение RFC 1123 HTTP Time String или число миллисекунда в соответствии с параметром истечения срока действия.

If-Match

string

Необязательный. Значение ETag. Укажите этот заголовок для выполнения операции, только если ETag ресурса соответствует указанному значению. ETag должен быть указан в кавычках.

If-None-Match

string

Необязательный. Значение ETag или специальное подстановочное значение ("*"). Укажите этот заголовок для выполнения операции, только если ETag ресурса не соответствует указанному значению. ETag должен быть указан в кавычках.

If-Modified-Since

string

Необязательный. Значение даты и времени. Укажите этот заголовок для выполнения операции, только если ресурс был изменен с указанной даты и времени.

If-Unmodified-Since

string

Необязательный. Значение даты и времени. Укажите этот заголовок для выполнения операции, только если ресурс не был изменен с указанной даты и времени.

x-ms-source-if-match

string

Необязательный. Значение ETag. Укажите этот заголовок для выполнения операции переименования, только если ETag источника соответствует указанному значению. ETag должен быть указан в кавычках.

x-ms-source-if-none-match

string

Необязательный. Значение ETag или специальное подстановочное значение ("*"). Укажите этот заголовок для выполнения операции переименования, только если ETag источника не соответствует указанному значению. ETag должен быть указан в кавычках.

x-ms-source-if-modified-since

string

Необязательный. Значение даты и времени. Укажите этот заголовок для выполнения операции переименования, только если источник был изменен с указанной даты и времени.

x-ms-source-if-unmodified-since

string

Необязательный. Значение даты и времени. Укажите этот заголовок для выполнения операции переименования, только если источник не был изменен с указанной даты и времени.

x-ms-encryption-key

string

Необязательный. Ключ шифрования AES-256 с кодировкой Base64.

x-ms-encryption-key-sha256

string

Необязательный. Хэш шифрования в кодировке Base64 SHA256 ключа шифрования.

x-ms-encryption-algorithm: AES256

string

Необязательный. Задает алгоритм, используемый для шифрования. Значение этого заголовка должно быть AES256.

x-ms-encryption-context

string

Необязательный. Значение по умолчанию — "Пустое". Если задано значение, он установит метаданные BLOB-объектов или файловой системы. Максимальная длина — 1024. Допустимо, только если иерархическое пространство имен включено для учетной записи.

x-ms-client-transaction-id

string

Необязательный. Значение по умолчанию — "Пустое". Если задано значение, он установит метаданные BLOB-объектов для создания или переименования файла. Если время ожидания запроса для клиента истекло, это значение можно получить с помощью вызова Get Properties, чтобы подтвердить, успешно ли выполнено время ожидания запроса или нет в конце службы. Максимальная длина — 36. Допустимо, только если иерархическое пространство имен включено для учетной записи.

x-ms-client-request-id

string

Идентификатор UUID, записанный в журналах аналитики для устранения неполадок и корреляции.

Шаблон регулярного выражения: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$

x-ms-date

string

Указывает универсальное время (UTC) для запроса. Это необходимо при использовании авторизации общего ключа.

x-ms-version

string

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

Ответы

Имя Тип Описание
201 Created

Файл или каталог был создан.

Заголовки

  • Date: string
  • ETag: string
  • Last-Modified: string
  • x-ms-request-id: string
  • x-ms-version: string
  • x-ms-continuation: string
  • Content-Length: integer
  • x-ms-request-server-encrypted: true/false: boolean
  • x-ms-encryption-key-sha256: string
  • x-ms-encryption-scope: string
Other Status Codes

DataLakeStorageError

Произошла ошибка. Ниже перечислены возможные строки HTTP- состояния, кода и сообщения:

  • 400 Bad Request, ContentLengthMustBeZero, "Заголовок запроса на длину содержимого должен быть равен нулю".
  • 400 Bad Request, InvalidAuthenticationInfo, "Сведения о проверке подлинности не указаны в правильном формате. Проверьте значение заголовка авторизации".
  • 400 Bad Request, InvalidFlushPosition, "Отправленные данные не являются смежными, или значение параметра запроса позиции не равно длине файла после добавления отправленных данных".
  • 400 Bad Request, InvalidHeaderValue, "Значение для одного из заголовков HTTP не соответствует правильному формату".
  • 400 Bad Request, InvalidHttpVerb, "Указанная HTTP-команда недопустима - она не распознается сервером".
  • 400 Bad Request, InvalidInput, "Один из входных данных запроса недопустим".
  • 400 Bad Request, InvalidPropertyName, "Имя свойства не может быть пустым".
  • 400 Bad Request, InvalidPropertyName, "Имя свойства содержит недопустимые символы".
  • 400 Bad Request, InvalidQueryParameterValue, "Значение для одного из параметров запроса, указанных в URI запроса, недопустимо".
  • 400 Bad Request, InvalidResourceName, "Указанное имя ресурса содержит недопустимые символы".
  • 400 Недопустимый запрос, InvalidSourceUri, "Исходный URI недопустим".
  • 400 Bad Request, InvalidUri, "Недопустимый URI запроса".
  • 400 Bad Request, MissingRequiredHeader, "Заголовок HTTP, обязательный для этого запроса, не указан".
  • 400 Bad Request, MissingRequiredQueryParameter, "Параметр запроса, обязательный для этого запроса, не указан".
  • 400 Bad Request, MultipleConditionHeadersNotSupported, "Несколько заголовков условий не поддерживаются".
  • 400 Bad Request, OutOfRangeInput, "Один из входных данных запроса выходит за пределы диапазона".
  • 400 Bad Request, OutOfRangeQueryParameterValue, "Один из параметров запроса, указанных в URI запроса, находится за пределами допустимого диапазона".
  • 400 Bad Request, UnsupportedHeader, "Один из заголовков, указанных в запросе, не поддерживается".
  • 400 Bad Request, UnsupportedQueryParameter, "Один из параметров запроса, указанных в URI запроса, не поддерживается".
  • 400 Bad Request, UnsupportedRestVersion, "Указанная версия rest не поддерживается".
  • 403 Запрещено, AccountIsDisabled, "Указанная учетная запись отключена".
  • 403 Запрещено, AuthorizationFailure: "Этот запрос не авторизован для выполнения этой операции".
  • 403 Запрещено, НедостаточноAccountPermissions: "Доступ к учетной записи не имеет достаточных разрешений для выполнения этой операции".
  • 404 Not Found, FilesystemNotFound, "Указанная файловая система не существует".
  • 404 Not Found, PathNotFound, "Указанный путь не существует".
  • 404 Not Found, RenameDestinationParentPathNotFound, "Родительский каталог пути назначения не существует".
  • 404 Not Found, ResourceNotFound, "Указанный ресурс не существует".
  • 404 Not Found, SourcePathNotFound: "Исходный путь для операции переименования не существует".
  • Метод 405 Not Allowed, UnsupportedHttpVerb, "Ресурс не поддерживает указанную http-команду".
  • 409 Conflict, DestinationPathIsBeingDeleted: "Указанный путь назначения помечен для удаления".
  • 409 Conflict, DirectoryNotEmpty: "Значение параметра рекурсивного запроса должно иметь значение true, чтобы удалить непустый каталог".
  • 409 Conflict, FilesystemAlreadyExists, "Указанная файловая система уже существует".
  • 409 Conflict, FilesystemBeingDeleted, "Указанная файловая система удаляется".
  • 409 Conflict, InvalidDestinationPath, "Указанный путь или элемент пути существует, и его тип ресурса недопустим для этой операции". * 409 Conflict, InvalidFlushOperation, "Ресурс был создан или изменен API службы BLOB-объектов и не может быть записан в API службы Data Lake Storage".
  • 409 Conflict, InvalidRenameSourcePath, "Исходный каталог не может совпадать с конечным каталогом, а также не может быть подкаталогом исходного каталога".
  • 409 Conflict, InvalidSourceOrDestinationResourceType, "Исходный и целевой тип ресурса должен быть идентичным".
  • 409 Конфликт, АрендаAlreadyPresent, "Уже есть арендная плата".
  • 409 Conflict, LeaseIdMismatchWithLeaseOperation, "Указанный идентификатор аренды не соответствует идентификатору аренды ресурса с указанной операцией аренды".
  • 409 Конфликт, АрендыAlreadyBroken, "Аренда уже нарушена и не может быть нарушена снова".
  • 409 Conflict, LeaseIsBreakingAndCannotBeAcquired, "Идентификатор аренды сопоставлен, но аренда в настоящее время находится в критическом состоянии и не может быть приобретена, пока она не будет нарушена".
  • 409 Conflict, LeaseIsBreakingAndCannotBeChanged, "Идентификатор аренды сопоставлен, но аренда в настоящее время находится в критическом состоянии и не может быть изменена".
  • Конфликт 409, LeaseIsBrokenAndCannotBeRenewed, "Идентификатор аренды совпадает, но аренда была явно нарушена и не может быть продлена".
  • 409 Conflict, LeaseNameMismatch, "Указанное имя аренды не совпадает с существующим именем аренды".
  • Конфликт 409, LeaseNotPresentWithLeaseOperation, "Идентификатор аренды не присутствует с указанной операцией аренды".
  • Конфликт 409, PathAlreadyExists: "Указанный путь уже существует".
  • 409 Conflict, PathConflict, "Указанный путь или элемент пути существует, и его тип ресурса недопустим для этой операции".
  • 409 Conflict, SourcePathIsBeingDeleted: "Указанный исходный путь помечен для удаления".
  • 409 Conflict, ResourceTypeMismatch: "Тип ресурса, указанный в запросе, не соответствует типу ресурса".
  • 412 Сбой предварительных условий, conditionNotMet, "Условие, указанное с использованием условных заголовков HTTP, не выполняется".
  • 412 Сбой предварительных условий, LeaseIdMismatch: "Указанный идентификатор аренды не соответствует идентификатору аренды ресурса".
  • 412 Сбой предварительных условий, LeaseIdMissing: "В настоящее время имеется аренда ресурса и в запросе не указан идентификатор аренды".
  • 412 Не удалось выполнить предварительные условия, LeaseNotPresent: "В настоящее время нет аренды ресурса".
  • 412 Предварительные условия завершилось сбоем, LeaseLost, "Идентификатор аренды был указан, но срок аренды ресурса истек".
  • 412 Сбой предварительных условий, SourceConditionNotMet, "Исходное условие, указанное с использованием условных заголовков HTTP, не выполняется".
  • 413 Запрос слишком большой, RequestBodyTooLarge: "Текст запроса слишком велик и превышает максимально допустимое ограничение".
  • 416 Запрошенный диапазон недопустим, InvalidRange: "Указанный диапазон недопустим для текущего размера ресурса".
  • 500 Внутренняя ошибка сервера, InternalError, "Сервер столкнулся с внутренней ошибкой. Повторите запрос".
  • 500 Внутренняя ошибка сервера OperationTimedOut: "Операция не может быть завершена в течение допустимого времени".
  • 503 Служба недоступна, ServerBusy, "Исходящий трафик превышает предел учетной записи".
  • 503 Служба недоступна, ServerBusy, "Входящий трафик превышает ограничение учетной записи".
  • 503 Служба недоступна, ServerBusy, "Операции в секунду превышает ограничение учетной записи".
  • Служба 503 недоступна, ServerBusy, "Сервер в настоящее время не может получать запросы. Повторите запрос".

Заголовки

  • x-ms-request-id: string
  • x-ms-version: string

Определения

Имя Описание
DataLakeStorageError
Error

Объект ответа об ошибке службы.

PathRenameMode

Необязательный. Допустимо только в том случае, если пространство имен включено. Этот параметр определяет поведение операции переименования. Значение должно быть "устаревшим" или "posix", а значение по умолчанию будет "posix".

PathResourceType

Требуется только для создания файла и создания каталога. Значение должно быть "file" или "directory".

DataLakeStorageError

Имя Тип Описание
error

Error

Объект ответа об ошибке службы.

Error

Объект ответа об ошибке службы.

Имя Тип Описание
code

string

Код ошибки службы.

message

string

Сообщение об ошибке службы.

PathRenameMode

Необязательный. Допустимо только в том случае, если пространство имен включено. Этот параметр определяет поведение операции переименования. Значение должно быть "устаревшим" или "posix", а значение по умолчанию будет "posix".

Имя Тип Описание
legacy

string

posix

string

PathResourceType

Требуется только для создания файла и создания каталога. Значение должно быть "file" или "directory".

Имя Тип Описание
directory

string

file

string