Criar arquivo

A operação Create File cria um novo arquivo ou substitui um arquivo. Quando você chama Create File, inicializa apenas o arquivo. Para adicionar conteúdo a um arquivo, chame a Put Range operação .

Disponibilidade do protocolo

Protocolo de compartilhamento de arquivos habilitado Disponível
SMB Sim
NFS Não

Solicitação

Você pode construir uma Create File solicitação fazendo o seguinte. Recomendamos que você use HTTPS.

Método URI da solicitação Versão HTTP
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile HTTP/1.1

Substitua os componentes de caminho mostrados no URI de solicitação pelos seus próprios, conforme descrito na tabela a seguir:

Componente Demarcador Descrição
myaccount O nome da sua conta de armazenamento.
myshare O nome do seu compartilhamento de arquivo.
mydirectorypath Opcional. O caminho para o diretório onde o arquivo deve ser criado. Se o caminho de diretório for omitido, o arquivo será criado no compartilhamento especificado.

Se o diretório for especificado, ele já deverá existir dentro do compartilhamento antes que você possa criar o arquivo.
myfile O nome do arquivo a ser criado.

Para obter informações sobre restrições de nomenclatura de caminho, consulte Compartilhamentos de nome e referência, diretórios, arquivos e metadados.

Parâmetros do URI

Você pode especificar os seguintes parâmetros adicionais no URI da solicitação:

Parâmetro Descrição
timeout Opcional. O parâmetro timeout é expresso em segundos. Para obter mais informações, consulte Definir tempos limite para operações de serviço de arquivo.

Cabeçalhos da solicitação

Os cabeçalhos de solicitação obrigatórios e opcionais são descritos na tabela a seguir:

Cabeçalho da solicitação Descrição
Authorization Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
Date ou x-ms-date Obrigatórios. Especifica a hora do Tempo Universal Coordenado (UTC) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure.
x-ms-version Necessário para todas as solicitações autorizadas. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure.
Content-Length Opcional. Deve ser zero, se presente.
x-ms-content-length: byte value Obrigatórios. Esse cabeçalho especifica o tamanho máximo para o arquivo, até 4 tebibytes (TiB).
Content-Type ou x-ms-content-type Opcional. O tipo de conteúdo MIME do arquivo. O tipo padrão é application/octet-stream.
Content-Encoding ou x-ms-content-encoding Opcional. Especifica quais codificações de conteúdo foram aplicadas ao arquivo. Esse valor é retornado ao cliente quando a operação Obter Arquivo é executada no recurso de arquivo e você pode usá-lo para decodificar o conteúdo do arquivo.
Content-Language ou x-ms-content-language Opcional. Especifica as linguagens naturais usadas por esse recurso.
Cache-Control ou x-ms-cache-control Opcional. Arquivos do Azure armazena esse valor, mas não o usa nem modifica.
x-ms-content-md5 Opcional. Define o hash MD5 do arquivo.
x-ms-content-disposition Opcional. Define o cabeçalho do Content-Disposition arquivo.
x-ms-type: file Obrigatórios. Defina este cabeçalho como file.
x-ms-meta-name:value Opcional. Pares nome-valor associados ao arquivo como metadados. Os nomes de metadados devem seguir as regras de nomenclatura para identificadores C#.

Observação: os metadados de arquivo especificados por meio de Arquivos do Azure não podem ser acessados em um cliente SMB (Server Message Block).
x-ms-file-permission: { inherit ¦ <SDDL> } Na versão 2019-02-02 a 2021-04-10, esse cabeçalho será necessário se x-ms-file-permission-key não for especificado. A partir da versão 2021-06-08, ambos os cabeçalhos são opcionais. Essa permissão é o descritor de segurança para o arquivo especificado na SDDL (Linguagem de Definição do Descritor de Segurança). Você poderá usar esse cabeçalho se o tamanho das permissões for de 8 kibibytes (KiB) ou menos. Caso contrário, você pode usar x-ms-file-permission-key. Se você especificar o cabeçalho, ele deverá ter um proprietário, um grupo e uma DACL (lista de controle de acesso discricionário). Você pode passar um valor de inherit para herdar do diretório pai.
x-ms-file-permission-key: <PermissionKey> Na versão 2019-02-02 a 2021-04-10, esse cabeçalho será necessário se x-ms-file-permission não for especificado. A partir da versão 2021-06-08, ambos os cabeçalhos são opcionais. Se nenhum dos cabeçalhos for especificado, o valor padrão de inherit será usado para o x-ms-file-permission cabeçalho .

Você pode criar a chave chamando a Create Permission API.
x-ms-file-attributes Obrigatório: versão 2019-02-02 a 2021-04-10. Opcional: versão 2021-06-08 e posterior. Esse cabeçalho contém os atributos do sistema de arquivos a serem definidos no arquivo. Para obter mais informações, consulte a lista de atributos disponíveis. O valor padrão é None.
x-ms-file-creation-time: { now ¦ <DateTime> } Obrigatório: versão 2019-02-02 a 2021-04-10. Opcional: versão 2021-06-08 e posterior. A propriedade de tempo de criação UTC (Tempo Universal Coordenado) para o arquivo. Um valor de now pode ser usado para indicar a hora da solicitação. O valor padrão é now.
x-ms-file-last-write-time: { now ¦ <DateTime> } Obrigatório: versão 2019-02-02 a 2021-04-10. Opcional: versão 2021-06-08 e posterior. A última propriedade de gravação UTC (Tempo Universal Coordenado) para o arquivo. Você pode usar um valor de now para indicar a hora da solicitação. O valor padrão é now.
x-ms-lease-id: <ID> Obrigatório se o arquivo tiver uma concessão ativa. Disponível para a versão 2019-02-02 e posterior.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) que é registrado nos logs quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. Para obter mais informações, consulte Monitorar Arquivos do Azure.
x-ms-file-change-time: { now ¦ <DateTime> } Opcional. Versão 2021-06-08 e posterior. A propriedade utc (tempo universal coordenado) altera a propriedade de tempo para o arquivo, no formato ISO 8601. Você pode usar um valor de now para indicar a hora da solicitação. O valor padrão é now.
x-ms-file-request-intent Obrigatório se Authorization o cabeçalho especificar um token OAuth. O valor aceitável é backup. Esse cabeçalho especifica que o Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action ou Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action deve ser concedido se eles estiverem incluídos na política RBAC atribuída à identidade autorizada usando o Authorization cabeçalho . Disponível para a versão 2022-11-02 e posterior.
x-ms-allow-trailing-dot: { <Boolean> } Opcional. Versão 2022-11-02 e posterior. O valor booliano especifica se um ponto à direita presente na URL da solicitação deve ser cortado ou não. Para obter mais informações, consulte Nomenclatura e referência de compartilhamentos, diretórios, arquivos e metadados.

Corpo da solicitação

Nenhum.

Solicitação de exemplo

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=  
  

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 201 (Criado).

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

A resposta para essa operação inclui os cabeçalhos descritos na tabela a seguir. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
ETag A ETag contém um valor que representa a versão do arquivo. O valor está entre aspas.
Last-Modified Retorna a data e a hora em que o arquivo foi modificado pela última vez. O formato da data segue RFC 1123. Para obter mais informações, consulte Representar valores de data/hora em cabeçalhos.

Qualquer operação que modifique o diretório ou suas propriedades atualiza a hora da última modificação. As operações em arquivos não afetam a hora da última modificação do diretório.
x-ms-request-id Identifica exclusivamente a solicitação que foi feita e pode ser usada para solucionar problemas da solicitação. Para obter mais informações, consulte Solucionar problemas de operações de API
x-ms-version Indica a versão Arquivos do Azure usada para executar a solicitação.
Date Um valor de data/hora UTC gerado pelo serviço, que indica a hora em que a resposta foi iniciada.
x-ms-request-server-encrypted: true/false Versão 2017-04-17 e posterior. O valor desse cabeçalho será definido true como se você tiver criptografado com êxito o conteúdo da solicitação usando o algoritmo especificado. Se a criptografia não for bem-sucedida, o valor será false.
x-ms-file-permission-key A chave da permissão do arquivo.
x-ms-file-attributes Os atributos do sistema de arquivos no arquivo. Para obter mais informações, consulte a lista de atributos disponíveis.
x-ms-file-creation-time O valor de data/hora UTC que representa a propriedade de hora de criação do arquivo.
x-ms-file-last-write-time O valor de data/hora UTC que representa a última propriedade de tempo de gravação para o arquivo.
x-ms-file-change-time A data/hora UTC que representa a propriedade de tempo de alteração para o arquivo.
x-ms-file-file-id A ID do arquivo.
x-ms-file-parent-id A ID do arquivo pai do arquivo.
x-ms-client-request-id Usado para solucionar problemas de solicitações e suas respostas correspondentes. O valor desse cabeçalho será igual ao valor do x-ms-client-request-id cabeçalho se ele estiver presente na solicitação e o valor não contiver mais de 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, ele não estará presente na resposta.

Corpo da resposta

Nenhum.

Resposta de exemplo

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  

Autorização

Somente o proprietário da conta pode chamar essa operação.

Atributos do sistema de arquivos

Atributo Atributo de arquivo Win32 Definição
ReadOnly FILE_ATTRIBUTE_READONLY Um arquivo que é somente leitura. Os aplicativos podem ler o arquivo, mas não podem gravá-lo ou excluí-lo.
Hidden FILE_ATTRIBUTE_HIDDEN O arquivo está oculto. Ele não está incluído em uma listagem de diretório comum.
Sistema FILE_ATTRIBUTE_SYSTEM Um arquivo do qual o sistema operacional usa uma parte ou usa exclusivamente.
Nenhum FILE_ATTRIBUTE_NORMAL Um arquivo que não tem outros atributos definidos. Este atributo é válido somente quando for usado sozinho.
Arquivos FILE_ATTRIBUTE_ARCHIVE Um arquivo que é um arquivo morto. Os aplicativos normalmente usam esse atributo para marcar arquivos para backup ou remoção.
Temporário FILE_ATTRIBUTE_TEMPORARY Um arquivo que está sendo usado para armazenamento temporário.
Offline FILE_ATTRIBUTE_OFFLINE Os dados de um arquivo não estão disponíveis imediatamente. Esse atributo do sistema de arquivos é apresentado principalmente para fornecer compatibilidade com o Windows. Arquivos do Azure não dá suporte a ele com opções de armazenamento offline.
NotContentIndexed FILE_ATTRIBUTE_NOT_CONTENT_INDEXED O arquivo não deve ser indexado pelo serviço de indexação de conteúdo.
NoScrubData FILE_ATTRIBUTE_NO_SCRUB_DATA O fluxo de dados do usuário que não deve ser lido pelo verificador de integridade de dados em segundo plano. Esse atributo do sistema de arquivos é apresentado principalmente para fornecer compatibilidade com o Windows.

Comentários

Para criar um novo arquivo, primeiro inicialize-o chamando Create File e especificando seu tamanho máximo, até 4 TiB. Ao executar essa operação, não inclua conteúdo no corpo da solicitação. Depois de criar o arquivo, chame Put Range para adicionar conteúdo ao arquivo ou modificá-lo.

Você pode alterar o tamanho do arquivo chamando Set File Properties.

Se o compartilhamento ou diretório pai não existir, a operação falhará com status código 412 (Falha na pré-condição).

Observação

As propriedades cache-controldo arquivo , content-type, content-md5, content-encodinge content-language são separadas das propriedades do sistema de arquivos que estão disponíveis para clientes SMB. Os clientes SMB não conseguem ler, gravar ou modificar esses valores de propriedade.

Para criar o arquivo, se o arquivo existente tiver uma concessão ativa, o cliente deverá especificar uma ID de concessão válida na solicitação. Se o cliente não especificar uma ID de concessão ou especificar uma ID de concessão inválida, Arquivos do Azure retornará status código 412 (Falha na pré-condição). Se o cliente especificar uma ID de concessão, mas o arquivo não tiver uma concessão ativa, Arquivos do Azure retornará status código 412 (Falha de Pré-condição) nesta instância também. Se o cliente especificar uma ID de concessão em um arquivo que ainda não existe, Arquivos do Azure retornará status código 412 (Falha de Pré-condição) para solicitações feitas na versão 2019-02-02 e posterior.

Se um arquivo existente com uma concessão ativa for substituído por uma Create File operação, a concessão persistirá no arquivo atualizado até que ele seja liberado.

Create Filenão há suporte em um instantâneo de compartilhamento, que é uma cópia somente leitura de um compartilhamento. Uma tentativa de executar essa operação em um instantâneo de compartilhamento falha com status código 400 (InvalidQueryParameterValue).

Confira também

Operações em Arquivos do Azure