Copie d'un objet blobCopy Blob

L'opération Copy Blob copie un objet blob vers une destination au sein du compte de stockage.The Copy Blob operation copies a blob to a destination within the storage account.

Dans la version 2012-02-12 et les versions ultérieures, la source d’une opération de copie d’objet BLOB peut être un objet BLOB validé dans n’importe quel compte de stockage Azure.In version 2012-02-12 and later, the source for a Copy Blob operation can be a committed blob in any Azure storage account.

À partir de la version 2015-02-21, la source d’une Copy Blob opération peut être un fichier Azure dans n’importe quel compte de stockage Azure.Beginning with version 2015-02-21, the source for a Copy Blob operation can be an Azure file in any Azure storage account.

Notes

Seuls les comptes de stockage créés à partir du 7 juin 2012 autorisent l'opération Copy Blob pour copier à partir d'un autre compte de stockage.Only storage accounts created on or after June 7th, 2012 allow the Copy Blob operation to copy from another storage account.

RequêteRequest

La demande Copy Blob peut être construite comme indiqué ci-dessous.The Copy Blob request may be constructed as follows. HTTPS est recommandé.HTTPS is recommended. Remplacez myaccount par le nom de votre compte de stockage, mycontainer par le nom de votre conteneur, et myblob par le nom de votre objet blob de destination.Replace myaccount with the name of your storage account, mycontainer with the name of your container, and myblob with the name of your destination blob.

À partir de la version 2013-08-15, vous pouvez spécifier une signature d’accès partagé pour l’objet blob de destination si celui-ci se trouve dans le même compte que l’objet BLOB source.Beginning with version 2013-08-15, you may specify a shared access signature for the destination blob if it is in the same account as the source blob. À partir de la version 2015-04-05, vous pouvez également spécifier une signature d’accès partagé pour l’objet blob de destination si celui-ci se trouve dans un compte de stockage différent.Beginning with version 2015-04-05, you may also specify a shared access signature for the destination blob if it is in a different storage account.

URI de demande de la méthode PUTPUT Method Request URI Version HTTPHTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob HTTP/1.1HTTP/1.1

URI du service de stockage émuléEmulated storage service URI

Lorsque vous élaborez une demande pour le service de stockage émulé, spécifiez le nom d'hôte de l'émulateur et le port de service BLOB sous la forme 127.0.0.1:10000, suivi du nom de compte de stockage émulé :When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name:

URI de demande de la méthode PUTPUT Method Request URI Version HTTPHTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1HTTP/1.1

Pour plus d’informations, consultez utilisation de l’émulateur de stockage Azure pour le développement et le test.For more information, see Using the Azure Storage Emulator for Development and Testing.

Paramètres URIURI parameters

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.The following additional parameters may be specified on the request URI.

ParamètreParameter DescriptionDescription
timeout facultatif.Optional. Le paramètre timeout est exprimé en secondes.The timeout parameter is expressed in seconds. Pour plus d’informations, consultez définition de délais d’attente pour les opérations de service BLOB.For more information, see Setting Timeouts for Blob Service Operations.

En-têtes de requêteRequest Headers

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.The following table describes required and optional request headers.

En-tête de requêteRequest Header DescriptionDescription
Authorization Obligatoire.Required. Spécifie le schéma d’autorisation, le nom de compte et la signature.Specifies the authorization scheme, account name, and signature. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
Date ou x-ms-dateDate or x-ms-date Obligatoire.Required. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête.Specifies the Coordinated Universal Time (UTC) for the request. Pour plus d’informations, consultez autoriser les demandes dans le stockage Azure.For more information, see Authorize requests to Azure Storage.
x-ms-version Obligatoire pour toutes les demandes autorisées.Required for all authorized requests. Pour plus d’informations, consultez contrôle de version pour les services de stockage Azure.For more information, see Versioning for the Azure Storage Services.
x-ms-meta-name:value facultatif.Optional. Spécifie une paire nom-valeur définie par l'utilisateur associée à l'objet blob.Specifies a user-defined name-value pair associated with the blob. Si aucune paire nom-valeur n’est spécifiée, l’opération copie les métadonnées du fichier ou de l’objet BLOB source vers l’objet blob de destination.If no name-value pairs are specified, the operation will copy the metadata from the source blob or file to the destination blob. Si une ou plusieurs paires nom-valeur sont spécifiées, l’objet blob de destination est créé avec les métadonnées spécifiées et les métadonnées ne sont pas copiées à partir du fichier ou de l’objet BLOB source.If one or more name-value pairs are specified, the destination blob is created with the specified metadata, and metadata is not copied from the source blob or file.

Notez que depuis la version 2009-09-19, les noms de métadonnées doivent respecter les règles d’affectation de noms pour les identificateurs C#.Note that beginning with version 2009-09-19, metadata names must adhere to the naming rules for C# identifiers. Pour plus d’informations , consultez nommer et référencer des conteneurs, des objets BLOB et des métadonnées .See Naming and Referencing Containers, Blobs, and Metadata for more information.
x-ms-tags facultatif.Optional. Définit les balises encodées de chaîne de requête données sur l’objet BLOB.Sets the given query-string encoded tags on the blob. Les balises ne sont pas copiées à partir de la source de copie.Tags are not copied from the copy source. Pour plus d’informations, consultez les notes.See the Remarks for additional information. Pris en charge dans la version 2019-12-12 et les versions ultérieures.Supported in version 2019-12-12 and newer.
x-ms-source-if-modified-since facultatif.Optional. Valeur DateTime.A DateTime value. Spécifiez cet en-tête conditionnel pour copier l'objet blob uniquement si l'objet blob source a été modifié depuis la date/l'heure indiquées.Specify this conditional header to copy the blob only if the source blob has been modified since the specified date/time. Si l'objet blob source n'a pas été modifié, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the source blob has not been modified, the Blob service returns status code 412 (Precondition Failed). Cet en-tête ne peut pas être spécifié si la source est un fichier Azure.This header cannot be specified if the source is an Azure File.
x-ms-source-if-unmodified-since facultatif.Optional. Valeur DateTime.A DateTime value. Spécifiez cet en-tête conditionnel pour copier l'objet blob uniquement si l'objet blob source n'a pas été modifié depuis la date/l'heure indiquées.Specify this conditional header to copy the blob only if the source blob has not been modified since the specified date/time. Si l'objet blob source a été modifié, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the source blob has been modified, the Blob service returns status code 412 (Precondition Failed). Cet en-tête ne peut pas être spécifié si la source est un fichier Azure.This header cannot be specified if the source is an Azure File.
x-ms-source-if-match facultatif.Optional. Spécifiez une valeur ETag.An ETag value. Spécifiez cet en-tête conditionnel pour copier l'objet blob source uniquement si son ETag correspond à la valeur spécifiée.Specify this conditional header to copy the source blob only if its ETag matches the value specified. Si les valeurs d'ETag ne correspondent pas, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the ETag values do not match, the Blob service returns status code 412 (Precondition Failed). Cet en-tête ne peut pas être spécifié si la source est un fichier Azure.This header cannot be specified if the source is an Azure File.
x-ms-source-if-none-match facultatif.Optional. Spécifiez une valeur ETag.An ETag value. Spécifiez cet en-tête conditionnel pour copier l'objet blob source uniquement si son ETag ne correspond pas à la valeur spécifiée.Specify this conditional header to copy the blob only if its ETag does not match the value specified. Si les valeurs sont identiques, le service BLOB renvoie le code d'état 412 (Échec de la précondition).If the values are identical, the Blob service returns status code 412 (Precondition Failed). Cet en-tête ne peut pas être spécifié si la source est un fichier Azure.This header cannot be specified if the source is an Azure File.
If-Modified-Since facultatif.Optional. Valeur DateTime.A DateTime value. Spécifiez cet en-tête conditionnel pour copier l'objet blob uniquement si l'objet blob de destination a été modifié depuis la date/l'heure indiquées.Specify this conditional header to copy the blob only if the destination blob has been modified since the specified date/time. Si l'objet blob de destination n'a pas été modifié, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the destination blob has not been modified, the Blob service returns status code 412 (Precondition Failed).
If-Unmodified-Since facultatif.Optional. Valeur DateTime.A DateTime value. Spécifiez cet en-tête conditionnel pour copier l'objet blob uniquement si l'objet blob de destination n'a pas été modifié depuis la date/l'heure indiquées.Specify this conditional header to copy the blob only if the destination blob has not been modified since the specified date/time. Si l'objet blob de destination a été modifié, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the destination blob has been modified, the Blob service returns status code 412 (Precondition Failed).
If-Match facultatif.Optional. Spécifiez une valeur ETag.An ETag value. Spécifiez une valeur d'ETag pour cet en-tête conditionnel pour copier l'objet blob uniquement si la valeur d'ETag spécifiée correspond à la valeur ETag pour un objet blob de destination existant.Specify an ETag value for this conditional header to copy the blob only if the specified ETag value matches the ETag value for an existing destination blob. Si l'ETag pour l'objet blob de destination ne correspond pas à l'ETag spécifié pour If-Match, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the ETag for the destination blob does not match the ETag specified for If-Match, the Blob service returns status code 412 (Precondition Failed).
If-None-Match facultatif.Optional. Spécifiez une valeur ETag ou le caractère générique *.An ETag value, or the wildcard character (*).

Spécifiez une valeur d'ETag pour cet en-tête conditionnel pour copier l'objet blob uniquement si la valeur d'ETag spécifiée ne correspond pas à la valeur d'ETag pour l'objet blob de destination.Specify an ETag value for this conditional header to copy the blob only if the specified ETag value does not match the ETag value for the destination blob.

Spécifiez le caractère générique ( * ) pour effectuer l’opération uniquement si l’objet blob de destination n’existe pas.Specify the wildcard character (*) to perform the operation only if the destination blob does not exist.

Si la condition spécifiée n'est pas remplie, le service BLOB retourne le code d'état 412 (Échec de la précondition).If the specified condition isn't met, the Blob service returns status code 412 (Precondition Failed).
x-ms-copy-source:name Obligatoire.Required. Spécifie le nom du fichier ou de l’objet BLOB source.Specifies the name of the source blob or file.

À partir de la version 2012-02-12, cette valeur peut être une URL d’une longueur maximale de 2 Kio qui spécifie un objet BLOB.Beginning with version 2012-02-12, this value may be a URL of up to 2 KiB in length that specifies a blob. La valeur doit être encodée sous forme d'URL, comme dans une URI de demande.The value should be URL-encoded as it would appear in a request URI. Un objet BLOB source dans le même compte de stockage peut être autorisé via une clé partagée.A source blob in the same storage account can be authorized via Shared Key. Toutefois, si la source est un objet BLOB dans un autre compte, l’objet BLOB source doit être public ou être autorisé via une signature d’accès partagé.However, if the source is a blob in another account, the source blob must either be public or must be authorized via a shared access signature. Si l’objet BLOB source est public, aucune autorisation n’est requise pour effectuer l’opération de copie.If the source blob is public, no authorization is required to perform the copy operation.

À partir de la version 2015-02-21, l’objet source peut être un fichier dans le service de fichiers Azure.Beginning with version 2015-02-21, the source object may be a file in the Azure File service. Si l’objet source est un fichier qui doit être copié vers un objet BLOB, le fichier source doit être autorisé à l’aide d’une signature d’accès partagé, qu’il réside dans le même compte ou dans un autre compte.If the source object is a file that is to be copied to a blob, then the source file must be authorized using a shared access signature, whether it resides in the same account or in a different account.

Seuls les comptes de stockage créés à partir du 7 juin 2012 autorisent l'opération Copy Blob pour copier à partir d'un autre compte de stockage.Only storage accounts created on or after June 7th, 2012 allow the Copy Blob operation to copy from another storage account.

Voici quelques exemples d’URL de l’objet source :Here are some examples of source object URLs:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>

Lorsque l’objet source est un fichier dans le service de fichiers Azure, l’URL source utilise le format suivant : Notez que l’URL doit inclure un jeton SAS valide pour le fichier :When the source object is a file in the Azure File service, the source URL uses the following format; note that the URL must include a valid SAS token for the file:

- https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?sastoken

Dans les versions antérieures au 12/02/2012, les objets blob ne peuvent être copiés que dans le même compte, et un nom de source peut utiliser les formats suivants :In versions before 2012-02-12, blobs can only be copied within the same account, and a source name can use these formats:

-BLOB dans le conteneur nommé : /accountName/containerName/blobName- Blob in named container: /accountName/containerName/blobName
-Instantané dans le conteneur nommé : /accountName/containerName/blobName?snapshot=<DateTime>- Snapshot in named container: /accountName/containerName/blobName?snapshot=<DateTime>
-BLOB dans le conteneur racine : /accountName/blobName- Blob in root container: /accountName/blobName
-Instantané dans le conteneur racine : /accountName/blobName?snapshot=<DateTime>- Snapshot in root container: /accountName/blobName?snapshot=<DateTime>
x-ms-lease-id:<ID> Obligatoire si l'objet blob de destination a un bail actif.Required if the destination blob has an active lease. L'ID de bail spécifié pour cet en-tête doit correspondre à l'ID de bail de l'objet blob de destination.The lease ID specified for this header must match the lease ID of the destination blob. Si la demande n'inclut pas l'ID de bail ou si elle n'est pas valide, l'opération échoue avec un code d'état 412 (Échec de la précondition).If the request does not include the lease ID or it is not valid, the operation fails with status code 412 (Precondition Failed).

Si cet en-tête est spécifié et que l'objet blob de destination n'a pas actuellement un bail actif, l'opération échouera également avec un code d'état 412 (Échec de la précondition).If this header is specified and the destination blob does not currently have an active lease, the operation will also fail with status code 412 (Precondition Failed).

À partir de la version du 12/02/2012, cette valeur doit spécifier un bail actif et infini pour un objet blob loué.In version 2012-02-12 and newer, this value must specify an active, infinite lease for a leased blob. Un ID de bail d'une durée fixe échoue avec 412 (Échec de la précondition).A finite-duration lease ID fails with 412 (Precondition Failed).
x-ms-source-lease-id: <ID> Facultatif, versions antérieures au 12/02/2012 (non pris en charge à partir des versions du 12/02/2012).Optional, versions before 2012-02-12 (unsupported in 2012-02-12 and newer). Spécifiez cet en-tête pour exécuter l'opération Copy Blob uniquement si l'ID de bail donné correspond à l'ID de bail actif de l'objet blob source.Specify this header to perform the Copy Blob operation only if the lease ID given matches the active lease ID of the source blob.

Si cet en-tête est spécifié et que l'objet blob source n'a pas actuellement un bail actif, l'opération échouera également avec un code d'état 412 (Échec de la précondition).If this header is specified and the source blob does not currently have an active lease, the operation will also fail with status code 412 (Precondition Failed).
x-ms-client-request-id facultatif.Optional. Fournit une valeur opaque générée par le client avec une limite de 1 Kio de caractères qui est enregistrée dans les journaux d’analyse lorsque la journalisation de l’analyse de stockage est activée.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. L’utilisation de cet en-tête est fortement recommandée pour la mise en corrélation des activités côté client avec les requêtes reçues par le serveur.Using this header is highly recommended for correlating client-side activities with requests received by the server. Pour plus d’informations, consultez à propos de la journalisation des Storage Analytics et de la journalisation Azure : utilisation des journaux pour suivre les demandes de stockage.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.
x-ms-access-tier facultatif.Optional. Spécifie le niveau à définir sur l’objet BLOB cible.Specifies the tier to be set on the target blob. Pour les objets BLOB de pages sur un compte Premium uniquement avec la version 2017-04-17 et les versions ultérieures.For page blobs on a premium account only with version 2017-04-17 and newer. Pour obtenir la liste complète des niveaux pris en charge , consultez stockage Premium hautes performances et disques managés pour les machines virtuelles .Check High-performance Premium Storage and managed disks for VMs for a full list of supported tiers. Version 2018-11-09 et versions ultérieures pour les objets BLOB de blocs.Version 2018-11-09 and newer for Block blobs. La hiérarchisation des objets BLOB de blocs est prise en charge sur les comptes de stockage BLOB ou usage général v2, les valeurs valides sont Hot / Cool / Archive .Block blob tiering is supported on blob storage or general purpose v2 accounts, valid values are Hot/Cool/Archive. Pour plus d’informations sur la hiérarchisation des objets BLOB de blocs , consultez niveaux de stockage chaud, froid et Archive.For detailed information about block blob tiering see Hot, cool and archive storage tiers.
x-ms-rehydrate-priority facultatif.Optional. Indique la priorité avec laquelle réalimenter un objet BLOB archivé.Indicates the priority with which to rehydrate an archived blob. Pris en charge sur la version 2019-02-02 et les versions ultérieures pour les objets BLOB de blocs.Supported on version 2019-02-02 and newer for Block blobs. Les valeurs valides sont High / Standard .Valid values are High/Standard. La priorité ne peut être définie qu’une seule fois sur un objet BLOB.The priority can be set on a blob only once. Cet en-tête sera ignoré lors des demandes suivantes adressées au même objet BLOB.This header will be ignored on subsequent requests to the same blob. La priorité par défaut sans cet en-tête est Standard .Default priority without this header is Standard.

Cette opération prend en charge les x-ms-if-tags x-ms-source-if-tags en-têtes conditionnels et pour qu’ils aboutissent uniquement si la condition spécifiée est remplie.This operation supports the x-ms-if-tags and x-ms-source-if-tags conditional headers to succeed only if the specified condition is met. Pour plus d’informations, consultez Spécification des en-têtes conditionnels pour les opérations du service Blob.For more information, see Specifying Conditional Headers for Blob Service Operations.

Corps de la demandeRequest Body

Aucun.None.

responseResponse

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.The response includes an HTTP status code and a set of response headers.

Code d’étatStatus Code

À partir de la version du 12/02/2012, une opération réussie retourne un code d'état 202 (Acceptée).In version 2012-02-12 and newer, a successful operation returns status code 202 (Accepted).

Dans les versions antérieures au 12/02/2012, une opération réussie retourne un code d'état 201 (Créée).In versions before 2012-02-12, a successful operation returns status code 201 (Created).

Pour plus d’informations sur les codes d’État, consultez codes d’État et d’erreur.For information about status codes, see Status and Error Codes.

En-têtes de réponseResponse Headers

La réponse de l'opération inclut les en-têtes suivants.The response for this operation includes the following headers. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires.The response may also include additional standard HTTP headers. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.All standard headers conform to the HTTP/1.1 protocol specification.

En-tête de réponseResponse header DescriptionDescription
ETag À partir de la version du 12/02/2012, si la copie est terminée, contient l'ETag de l'objet blob de destination.In version 2012-02-12 and newer, if the copy is complete, contains the ETag of the destination blob. Si la copie n'est pas terminée, contient l'ETag de l'objet blob vide créé au début de la copie.If the copy isn’t complete, contains the ETag of the empty blob created at the start of the copy.

Dans les versions antérieures au 12/02/2012, retourne l'ETag pour l'objet blob de destination.In versions before 2012-02-12, returns the ETag for the destination blob.

À partir de la version du 18/08/2011, la valeur de l'ETag sera entre guillemets.In version 2011-08-18 and newer, the ETag value will be in quotes.
Last-Modified Retourne le date/heure auxquelles l'opération de copie vers l'objet blob de destination s'est terminée.Returns the date/time that the copy operation to the destination blob completed.
x-ms-request-id Cet en-tête identifie de façon unique la demande qui a été effectuée et peut être utilisé pour résoudre les problèmes de la demande.This header uniquely identifies the request that was made and can be used for troubleshooting the request. Pour plus d’informations, consultez Troubleshooting API Operations.For more information, see Troubleshooting API Operations.
x-ms-version Indique la version du service BLOB utilisée pour exécuter la demande.Indicates the version of the Blob service used to execute the request. Cet en-tête est renvoyé pour les demandes effectuées avec la version 2009-09-19 ou une version ultérieure.This header is returned for requests made against version 2009-09-19 and later.
Date Une valeur de date/heure UTC générée par le service qui indique le moment auquel la réponse a été initiée.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-copy-id: <id> Version du 12.02.12 et ultérieure.Version 2012-02-12 and newer. Identificateur de chaîne pour cette opération de copie.String identifier for this copy operation. À utiliser avec Get Blob ou Get Blob Properties pour vérifier l'état de cette opération de copie ou passer à Abort Copy Blob pour annuler une copie en attente.Use with Get Blob or Get Blob Properties to check the status of this copy operation, or pass to Abort Copy Blob to abort a pending copy.
x-ms-copy-status: <success &#124; pending> Version du 12.02.12 et ultérieure.Version 2012-02-12 and newer. État de l'opération de copie, avec ces valeurs :State of the copy operation, with these values:

- success: la copie s’est terminée avec succès.- success: the copy completed successfully.
- pending: la copie est en cours.- pending: the copy is in progress.
x-ms-version-id: <DateTime> Version 2019-12-12 et versions ultérieures.Version 2019-12-12 and newer. Valeur DateTime retournée par le service qui identifie de façon unique l’objet BLOB.A DateTime value returned by the service that uniquely identifies the blob. La valeur de cet en-tête indique la version de l’objet BLOB et peut être utilisée dans les demandes suivantes pour accéder à cette version de l’objet BLOB.The value of this header indicates the blob version, and may be used in subsequent requests to access this version of the blob. Cette valeur doit être considérée comme opaque.This value should be treated as opaque.
x-ms-client-request-id Cet en-tête peut être utilisé pour dépanner les demandes et les réponses correspondantes.This header can be used to troubleshoot requests and corresponding responses. La valeur de cet en-tête est égale à la valeur de l' x-ms-client-request-id en-tête si elle est présente dans la demande et que la valeur est supérieure à 1024 caractères ASCII visibles.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. Si l' x-ms-client-request-id en-tête n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

Corps de la réponseResponse Body

Aucun.None.

Exemple de réponseSample Response

Voici un exemple de réponse pour une demande de copie d'un objet blob :The following is a sample response for a request to copy a blob:

Response Status:  
HTTP/1.1 202 Accepted  
  
Response Headers:   
Last-Modified: <date>   
ETag: "0x8CEB669D794AFE2"  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2015-02-21  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: pending
x-ms-version-id: <DateTime>  
Date: <date>  
  

AutorisationAuthorization

Cette opération peut être appelée par le propriétaire du compte.This operation can be called by the account owner. Pour les demandes effectuées dans la version du 15/08/2013 et les versions ultérieures, une signature d'accès partagé qui a l'autorisation d'écrire dans l'objet blob de destination ou son conteneur est prise en charge pour les opérations de copie dans le même compte.For requests made against version 2013-08-15 and later, a shared access signature that has permission to write to the destination blob or its container is supported for copy operations within the same account. Notez que la signature d'accès partagé spécifiée dans la demande s'applique uniquement à l'objet blob de destination.Note that the shared access signature specified on the request applies only to the destination blob.

L’accès à l’objet BLOB ou au fichier source est autorisé séparément, comme décrit dans les détails de l’en-tête de demande x-ms-copy-source .Access to the source blob or file is authorized separately, as described in the details for the request header x-ms-copy-source.

Le tableau suivant décrit la façon dont les objets source et de destination d’une opération de copie d’objet BLOB peuvent être autorisés.The following table describes how the destination and source objects for a Copy Blob operation may be authorized.

Objet blobBlob Autorisation avec Shared Key/Shared Key LiteAuthorization with Shared Key/Shared Key Lite Autorisation avec signature d’accès partagéAuthorization with Shared Access Signature Objet public ne nécessitant pas d’autorisationPublic Object Not Requiring Authorization
Objet blob de destinationDestination blob OuiYes OuiYes NonNo
Objet BLOB source dans le même compteSource blob in same account OuiYes OuiYes OuiYes
Objet BLOB source dans un autre compteSource blob in another account NonNo OuiYes OuiYes
Fichier source dans le même compte ou un autre compteSource file in the same account or another account NonNo OuiYes N/AN/A

Si une demande spécifie des balises avec l' x-ms-tags en-tête de demande, l’appelant doit respecter les exigences d’autorisation de l’opération définir les balises d’objet BLOB .If a request specifies tags with the x-ms-tags request header, the caller must meet the authorization requirements of the Set Blob Tags operation.

NotesRemarks

À partir de la version du 12/02/2012, l'opération Copy Blob peut être exécutée de façon asynchrone.In version 2012-02-12 and newer, the Copy Blob operation can complete asynchronously. Cette opération retourne un ID de copie que vous pouvez utiliser pour vérifier ou annuler l'opération de copie.This operation returns a copy ID you can use to check or abort the copy operation. Le service BLOB copie sur une base du meilleur effort.The Blob service copies blobs on a best-effort basis.

L’objet BLOB source pour une opération de copie peut être un objet blob de blocs, un objet blob d’ajout, un objet blob de pages ou un instantané.The source blob for a copy operation may be a block blob, an append blob, or a page blob, or a snapshot. Si l’objet blob de destination existe déjà, il doit être du même type d’objet blob que l’objet blob source.If the destination blob already exists, it must be of the same blob type as the source blob. Tout objet blob de destination existant sera remplacé.Any existing destination blob will be overwritten. L'objet blob de destination ne peut pas être modifié pendant qu'une opération de copie est en cours.The destination blob cannot be modified while a copy operation is in progress.

Dans la version 2015-02-21 et les versions ultérieures, la source de l’opération de copie peut également être un fichier dans le service de fichiers Azure.In version 2015-02-21 and newer, the source for the copy operation may also be a file in the Azure File service. Si la source est un fichier, la destination doit être un objet blob de blocs.If the source is a file, the destination must be a block blob.

Plusieurs opérations Copy Blob en attente au sein d'un compte peuvent être traitées de façon séquentielle.Multiple pending Copy Blob operations within an account might be processed sequentially. Un objet blob de destination ne peut avoir qu’une seule opération de copie d’objet blob en attente.A destination blob can only have one outstanding copy blob operation. En d'autres termes, un objet blob ne peut pas être la destination de plusieurs opérations Copy Blob en attente.In other words, a blob cannot be the destination for multiple pending Copy Blob operations. Une tentative de Copy Blob vers un objet blob de destination qui a déjà une copie en attente échoue avec le code d'état 409 (Conflit).An attempt to Copy Blob to a destination blob that already has a copy pending fails with status code 409 (Conflict).

Seuls les comptes de stockage créés à partir du 7 juin 2012 autorisent l'opération Copy Blob pour copier à partir d'un autre compte de stockage.Only storage accounts created on or after June 7th, 2012 allow the Copy Blob operation to copy from another storage account. Une tentative de copie à partir d'un autre compte de stockage vers un compte créé avant le 7 juin 2012 échoue avec le code d'état 400 (Demande incorrecte).An attempt to copy from another storage account to an account created before June 7th, 2012 fails with status code 400 (Bad Request).

L' Copy Blob opération copie toujours l’intégralité du fichier ou de l’objet BLOB source ; la copie d’une plage d’octets ou d’un ensemble de blocs n’est pas prise en charge.The Copy Blob operation always copies the entire source blob or file; copying a range of bytes or set of blocks is not supported.

Une opération Copy Blob peut prendre l'une des formes suivantes :A Copy Blob operation can take any of the following forms:

  • Vous pouvez copier un objet blob source vers un objet blob de destination avec un nom différent.You can copy a source blob to a destination blob with a different name. L’objet blob de destination peut être un objet blob existant du même type d’objet blob (bloc, ajout ou page), ou il peut s’agir d’un nouvel objet blob créé par l’opération de copie.The destination blob can be an existing blob of the same blob type (block, append, or page), or can be a new blob created by the copy operation.

  • Vous pouvez copier un objet blob source vers un objet blob de destination portant le même nom, ce qui a pour effet de remplacer l’objet blob de destination.You can copy a source blob to a destination blob with the same name, effectively replacing the destination blob. Une telle opération de copie supprime tous les blocs non valides et remplace les métadonnées de l'objet blob.Such a copy operation removes any uncommitted blocks and overwrites the blob's metadata.

  • Vous pouvez copier un fichier source figurant dans le service Azure File vers un objet blob de destination.You can copy a source file in the Azure File service to a destination blob. L’objet blob de destination peut être un objet blob existant ou un nouvel objet blob de blocs créé par l’opération de copie.The destination blob can be an existing block blob, or can be a new block blob created by the copy operation. La copie de fichiers vers des objets blob de pages ou d’ajout n’est pas prise en charge.Copying from files to page blobs or append blobs is not supported.

  • Vous pouvez copier un instantané sur son objet blob de base.You can copy a snapshot over its base blob. En plaçant un instantané à la place d'un objet blob de base, vous pouvez restaurer une version antérieure de l’objet blob.By promoting a snapshot to the position of the base blob, you can restore an earlier version of a blob.

  • Vous pouvez copier un instantané sur un objet blob de destination avec un nom différent.You can copy a snapshot to a destination blob with a different name. L’objet blob de destination obtenu est un objet blob modifiable et non pas un instantané.The resulting destination blob is a writeable blob and not a snapshot.

En copiant à partir d'un objet blob de pages, le service BLOB crée un objet blob de pages de destination de la longueur de l'objet blob source, qui contient au début tous les zéros.When copying from a page blob, the Blob service creates a destination page blob of the source blob’s length, initially containing all zeroes. Puis les plages de pages source sont énumérées, et des plages non vides sont copiées.Then the source page ranges are enumerated, and non-empty ranges are copied.

Pour un objet blob de blocs ou un objet blob d’ajout, le service BLOB crée un objet BLOB validé de longueur zéro avant de retourner à partir de cette opération.For a block blob or an append blob, the Blob service creates a committed blob of zero length before returning from this operation.

Lors de la copie à partir d’un objet blob de blocs, tous les blocs validés et leurs ID de bloc sont copiés.When copying from a block blob, all committed blocks and their block IDs are copied. Les blocs non validés ne sont pas copiés.Uncommitted blocks are not copied. À la fin de l’opération de copie, l’objet blob de destination aura le même nombre de blocs validés que la source.At the end of the copy operation, the destination blob will have the same committed block count as the source.

Lors de la copie à partir d’un objet blob d’ajout, tous les blocs validés sont copiés.When copying from an append blob, all committed blocks are copied. À la fin de l’opération de copie, l’objet blob de destination aura le même nombre de blocs validés que la source.At the end of the copy operation, the destination blob will have the same committed block count as the source.

Pour tous les types d’objets BLOB, vous pouvez appeler Get Blob ou Get Blob Properties sur l’objet blob de destination pour vérifier l’état de l’opération de copie.For all blob types, you can call Get Blob or Get Blob Properties on the destination blob to check the status of the copy operation. L’objet blob final est validé à la fin de la copie.The final blob will be committed when the copy completes.

Lorsque la source d'une opération de copie fournit des ETag, si des modifications sont apportées à la source pendant que la copie, la copie échoue.When the source of a copy operation provides ETags, if there are any changes to the source while the copy is in progress, the copy will fail. Une tentative de modification de l'objet blob de destination pendant une copie échoue avec un code 409 (Conflit).An attempt to change the destination blob while a copy is in progress will fail with 409 Conflict. Si l'objet blob de destination a un bail infini, l'ID de bail doit être passé à Copy Blob.If the destination blob has an infinite lease, the lease ID must be passed to Copy Blob. Les baux à durée fixe ne sont pas autorisés.Finite-duration leases are not allowed.

L'ETag pour un objet blob de blocs change lorsque l'opération Copy Blob est initiée et lorsque la copie est terminée.The ETag for a block blob changes when the Copy Blob operation is initiated and when the copy finishes. L'ETag pour un objet blob de pages change lorsque l'opération Copy Blob est initiée et continue de changer pendant la copie.The ETag for a page blob changes when the Copy Blob operation is initiated, and continues to change frequently during the copy. Le contenu d'un objet blob de blocs est visible uniquement en utilisant un GET après la fin de la copie.The contents of a block blob are only visible using a GET after the full copy completes.

Copie des propriétés, des balises et des métadonnées d’objets BLOBCopying Blob Properties, Tags, and Metadata

Quand un objet blob est copié, les propriétés système suivantes sont copiées vers l'objet blob de destination avec les mêmes valeurs :When a blob is copied, the following system properties are copied to the destination blob with the same values:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

  • x-ms-blob-sequence-number (for page blobs only)

  • x-ms-committed-block-count (for append blobs only, and for version 2015-02-21 only)

La liste des blocs validés de l'objet blob source est également copiée vers l'objet blob de destination, si l'objet blob est un objet blob de blocs.The source blob's committed block list is also copied to the destination blob, if the blob is a block blob. Les blocs non validés ne sont pas copiés.Any uncommitted blocks are not copied.

L'objet blob de destination est toujours de la même taille que l'objet blob source, c'est pourquoi la valeur de l'en-tête Content-Length pour l'objet blob de destination correspond à celle de l'objet blob source.The destination blob is always the same size as the source blob, so the value of the Content-Length header for the destination blob matches that for the source blob.

Lorsque l'objet blob source et l'objet blob de destination sont identiques, Copy Blob supprime tous les blocs non validés.When the source blob and destination blob are the same, Copy Blob removes any uncommitted blocks. Si les métadonnées sont spécifiées dans ce cas, les métadonnées existantes sont remplacées par les nouvelles métadonnées.If metadata is specified in this case, the existing metadata is overwritten with the new metadata.

Si des balises pour l’objet blob de destination sont fournies dans l' x-ms-tags en-tête, elles doivent être codées en chaîne de requête.If tags for the destination blob are provided in the x-ms-tags header, they must be query-string encoded. Les clés et valeurs de balise doivent respecter les exigences de nommage et de longueur comme spécifié dans définir des balises d’objet BLOB.Tag keys and values must conform to the naming and length requirements as specified in Set Blob Tags. En outre, l' x-ms-tags en-tête peut contenir jusqu’à 2 Ko de balises.Further, the x-ms-tags header may contain up to 2kb of tags. Si davantage de balises sont requises, utilisez l’opération définir les balises d’objet BLOB .If more tags are required, use the Set Blob Tags operation.

Si les balises ne sont pas fournies dans l' x-ms-tags en-tête, elles ne sont pas copiées à partir de l’objet BLOB source.If tags are not provided in the x-ms-tags header, then they are not copied from the source blob.

Copie d'un objet blob louéCopying a Leased Blob

L'opération Copy Blob lit uniquement à partir de l'objet blob source c'est pourquoi l'état du bail de l'objet blob source n'a pas d'importance.The Copy Blob operation only reads from the source blob so the lease state of the source blob does not matter. Toutefois, l'opération Copy Blob enregistre l'ETag de l'objet blob source quand la copie débute.However, the Copy Blob operation saves the ETag of the source blob when the copy is initiated. Si la valeur de l'ETag change avant la fin de la copie, la copie échoue.If the ETag value changes before the copy completes, the copy fails. Vous pouvez éviter les modifications à l'objet blob source en le louant pendant l'opération de copie.You can prevent changes to the source blob by leasing it during the copy operation.

Si l'objet blob de destination a un bail infini actif, vous devez spécifier son ID de bail dans l'appel à l'opération Copy Blob.If the destination blob has an active infinite lease, you must specify its lease ID in the call to the Copy Blob operation. Si le bail que vous spécifiez est un bail à durée fixe actif, cet appel échoue avec le code d'état 412 (Échec de la précondition).If the lease you specify is an active finite-duration lease, this call fails with a status code 412 (Precondition Failed). Pendant que la copie est en attente, une opération de location sur l'objet blob de destination échouera avec le code d'état 409 (Conflit).While the copy is pending, any lease operation on the destination blob will fail with status code 409 (Conflict). Un bail infini sur l'objet blob de destination est verrouillé de cette manière pendant l'opération de copie, que vous copiez vers un objet blob de destination avec un nom différent de la source, que vous copiez vers un objet blob de destination avec le même nom que la source ou que vous promouviez un instantané par rapport à son objet blob de base.An infinite lease on the destination blob is locked in this way during the copy operation whether you are copying to a destination blob with a different name from the source, copying to a destination blob with the same name as the source, or promoting a snapshot over its base blob. Si le client spécifie un ID de bail sur un objet blob qui n'existe pas encore, le service BLOB retourne le code d'état 412 (Échec de la précondition) pour les requêtes effectuées avec la version du 15/08/2013 et les versions ultérieures ; pour les versions antérieures, le service BLOB retourne le code d'état 201 (Créé).If the client specifies a lease ID on a blob that does not yet exist, the Blob service will return status code 412 (Precondition Failed) for requests made against version 2013-08-15 and later; for prior versions the Blob service will return status code 201 (Created).

Copie d'instantanésCopying Snapshots

Lorsqu’un objet BLOB source est copié, les captures instantanées ou versions de l’objet BLOB source ne sont pas copiées vers la destination.When a source blob is copied, any snapshots or versions of the source blob are not copied to the destination. Lorsqu’un objet blob de destination est remplacé par une copie, tous les instantanés ou versions associés à l’objet blob de destination restent intacts sous son nom.When a destination blob is overwritten with a copy, any snapshots or versions associated with the destination blob stay intact under its name.

Vous pouvez exécuter une opération de copie pour promouvoir un objet blob instantané par rapport à son objet blob de base.You can perform a copy operation to promote a snapshot blob over its base blob. De cette façon, vous pouvez restaurer une version antérieure d'un objet blob.In this way you can restore an earlier version of a blob. L'instantané est conservé, mais sa destination est remplacée par une copie qui peut être lue et modifiée.The snapshot remains, but its destination is overwritten with a copy that can be both read and written.

Copie de versionsCopying Versions

Vous pouvez effectuer une opération de copie pour promouvoir un objet blob de version sur son objet blob de base.You can perform a copy operation to promote a version blob over its base blob. De cette façon, vous pouvez restaurer une version antérieure d'un objet blob.In this way you can restore an earlier version of a blob. La version reste, mais sa destination est remplacée par une copie qui peut être lue et écrite.The version remains, but its destination is overwritten with a copy that can be both read and written.

Copie de l’objet BLOB archivé (version 2018-11-09 et ultérieures)Copying Archived Blob (version 2018-11-09 and newer)

Un objet BLOB archivé peut être copié dans un nouvel objet BLOB au sein du même compte de stockage.An archived blob can be copied to a new blob within the same storage account. L’objet BLOB initialement archivé est conservé tel quel.This will still leave the initially archived blob as is. Lors de la copie d’un objet BLOB archivé en tant que source, la requête doit contenir l’en-tête x-ms-access-tier indiquant le niveau de l’objet blob de destination.When copying an archived blob as source the request must contain the header x-ms-access-tier indicating the tier of the destination blob. Les données seront finalement copiées dans l’objet blob de destination.The data will be eventually copied to the destination blob.

La source de copie et la destination doivent être le même compte de stockage lorsque la source est archivée.The copy source and destination should be the same storage account when the source is archived. La demande échoue avec un conflit si la source de la copie est toujours en état de réalimentation en attente.The request will fail with Conflict if the source of the copy is still in pending rehydrate state.

Pour plus d’informations sur la hiérarchisation au niveau des objets BLOB de blocs , consultez niveaux de stockage chaud, froid et Archive.For detailed information about block blob level tiering see Hot, cool and archive storage tiers.

Utilisation d'une copie en attente (version du 12/02/2012 et ultérieures)Working with a Pending Copy (version 2012-02-12 and newer)

Si l' Copy Blob opération termine la copie de façon asynchrone, utilisez le tableau suivant pour déterminer l’étape suivante en fonction du code d’état retourné par Copy Blob :If the Copy Blob operation completes the copy asynchronously, use the following table to determine the next step based on the status code returned by Copy Blob:

Code d’étatStatus Code SignificationMeaning
202 (Acceptée), x-ms-copy-status: succès202 (Accepted), x-ms-copy-status: success La copie s'est terminée correctement.Copy completed successfully.
202 (Acceptée), x-ms-copy-status: en attente202 (Accepted), x-ms-copy-status: pending La copie ne s'est pas terminée.Copy has not completed. Interrogez l'objet blob de destination en utilisant Get Blob Properties pour examiner le x-ms-copy-status jusqu'à ce que la copie soit terminée ou qu'elle échoue.Poll the destination blob using Get Blob Properties to examine the x-ms-copy-status until copy completes or fails.
4xx, 500 ou 5034xx, 500, or 503 Échec de la copie.Copy failed.

Pendant et après une opération Copy Blob, les propriétés de l'objet blob de destination contiennent l'ID de copie de l'opération Copy Blob et l'URL de l'objet blob source.During and after a Copy Blob operation, the properties of the destination blob contain the copy ID of the Copy Blob operation and URL of the source blob. Lorsque la copie est terminée, le service BLOB écrit l'heure et la valeur de résultats (success, failed, ou aborted) dans les propriétés de l'objet blob de destination.When the copy completes, the Blob service writes the time and outcome value (success, failed, or aborted) to the destination blob properties. Si l'opération failed, l'en-tête x-ms-copy-status-description contient une chaîne de détail d'erreur.If the operation failed, the x-ms-copy-status-description header contains an error detail string.

Une opération Copy Blob en attente a un délai de 2 semaines.A pending Copy Blob operation has a 2 week timeout. Une tentative de copie qui ne s'est pas terminée après 2 semaines dépasse le délai et laisse un objet blob vide avec le champ x-ms-copy-status défini à failed et x-ms-copy-status-description défini à 500 (OperationCancelled).A copy attempt that has not completed after 2 weeks times out and leaves an empty blob with the x-ms-copy-status field set to failed and the x-ms-copy-status-description set to 500 (OperationCancelled). Des erreurs intermittentes et récupérables qui peuvent se produire lors d'une copie peuvent empêcher la progression de la copie mais n'entraînent pas son échec.Intermittent, non-fatal errors that can occur during a copy might impede progress of the copy but not cause it to fail. Dans ces cas, x-ms-copy-status-description décrit les erreurs intermittentes.In these cases, x-ms-copy-status-description describes the intermittent errors.

Toute tentative de modification ou d'instantané de l'objet blob de destination pendant la copie échoue avec Copie d'objet blob en cours 409 (Conflit).Any attempt to modify or snapshot the destination blob during the copy will fail with 409 (Conflict) Copy Blob in Progress.

Si vous appelez l'opération Abort Copy Blob, vous verrez un en-tête x-ms-copy-status:aborted et l'objet blob de destination aura des métadonnées intactes et une longueur d'objet blob de zéro octet.If you call the Abort Copy Blob operation, you will see a x-ms-copy-status:aborted header and the destination blob will have intact metadata and a blob length of zero bytes. Vous pouvez répéter l'appel d'origine à Copy Blob pour essayer de nouveau la copie.You can repeat the original call to Copy Blob to try the copy again.

Si l' Copy Blob opération se termine de façon synchrone, utilisez le tableau suivant pour déterminer l’état de l’opération de copie :If the Copy Blob operation completes synchronously, use the following table to determine the status of the copy operation:

Code d’étatStatus Code SignificationMeaning
202 (Acceptée), x-ms-copy-status: succès202 (Accepted), x-ms-copy-status: success La copie s'est terminée correctement.Copy completed successfully.
4xx, 500 ou 5034xx, 500, or 503 Échec de la copie.Copy failed.

Le niveau est hérité pour les niveaux de stockage Premium.Tier is inherited for premium storage tiers. Pour les objets BLOB de blocs, le remplacement de l’objet blob de destination hérite du niveau chaud/froid de la destination si x-MS-Access-Tier n’est pas fourni.For block blobs, overwriting the destination blob will inherit Hot/Cool tier from the destination if x-ms-access-tier is not provided. Le remplacement d’un objet BLOB archivé échouera.Overwriting an archived blob will fail. Pour plus d’informations sur la hiérarchisation au niveau des objets BLOB de blocs , consultez niveaux de stockage chaud, froid et Archive.For detailed information about block blob level tiering see Hot, cool and archive storage tiers.

BillingBilling

Le compte de destination d'une opération Copy Blob est facturé pour une transaction pour lancer la copie, et une transaction est également décomptée pour chaque demande d'annulation ou d'interrogation de l'état de l'opération de copie.The destination account of a Copy Blob operation is charged for one transaction to initiate the copy, and also incurs one transaction for each request to abort or request the status of the copy operation.

Lorsque l'objet blob source est dans un autre compte, le compte de source subit des frais de transaction.When the source blob is in another account, the source account incurs transaction costs. De plus, si les comptes source et de destination résident dans différentes régions (par exemple, Nord des États-Unis et Sud des États-Unis), la bande passante utilisée pour transférer la demande est facturée au compte de stockage source sous forme de sorties.In addition, if the source and destination accounts reside in different regions (e.g., US North and US South), bandwidth used to transfer the request is charged to the source storage account as egress. Les sorties entre les comptes au sein de la même région sont gratuits.Egress between accounts within the same region is free.

Lorsque vous copiez un objet blob source vers un objet blob de destination avec un nom différent au sein du même compte, vous utilisez des ressources de stockage supplémentaires pour le nouvel objet blob, l'opération de copie entraîne des frais d'utilisation de la capacité du compte de stockage pour ces ressources supplémentaires.When you copy a source blob to a destination blob with a different name within the same account, you use additional storage resources for the new blob, so the copy operation results in a charge against the storage account’s capacity usage for those additional resources. Toutefois, si le nom d'objet blob source et de destination sont les mêmes au sein du même compte (par exemple, lorsque vous promouvez un instantané en objet blob de base), cela n'entraîne aucun frais supplémentaire en dehors des métadonnées de copie supplémentaires stockées dans la version du 12/02/2012 ou ultérieure.However, if the source and destination blob name are the same within the same account (for example, when you promote a snapshot to its base blob), no additional charge is incurred other than the extra copy metadata stored in version 2012-02-12 and newer.

Lorsque vous promouvez un instantané pour remplacer son objet blob de base, l'objet blob instantané et de base deviennent identiques.When you promote a snapshot to replace its base blob, the snapshot and base blob become identical. Ils partagent les blocs ou les pages, c'est pourquoi l'opération de copie n'entraîne pas de frais supplémentaires de l'utilisation de la capacité du compte de stockage.They share blocks or pages, so the copy operation does not result in an additional charge against the storage account's capacity usage. Toutefois, si vous copiez un instantané vers un objet blob de destination avec un nom différent, des frais supplémentaires se produisent pour les ressources de stockage utilisées par le nouvel objet blob qui en résulte.However, if you copy a snapshot to a destination blob with a different name, an additional charge is incurred for the storage resources used by the new blob that results. Deux objets blob avec des noms différents ne peuvent pas partager des blocs ou des pages même s'ils sont identiques.Two blobs with different names cannot share blocks or pages even if they are identical. Pour plus d’informations sur les scénarios de coût des instantanés, consultez comprendre comment les instantanés accumulent les frais.For more information about snapshot cost scenarios, see Understanding How Snapshots Accrue Charges.

Voir aussiSee also

Autoriser les demandes au stockage Azure Authorize requests to Azure Storage
Codes d’État et d’erreur Status and Error Codes
Codes d’erreur du service BLOB Blob Service Error Codes
Comprendre comment les instantanés accumulent les frais Understanding How Snapshots Accrue Charges
Abort Copy BlobAbort Copy Blob