Freigeben über


Put Blob From URL

Der Put Blob From URL Vorgang erstellt ein neues Blockblob, bei dem der Inhalt des Blobs aus einer angegebenen URL gelesen wird. Diese API ist ab Version 2020-04-08 verfügbar.

Partielle Updates werden mit Put Blob From URLnicht unterstützt. Der Inhalt eines vorhandenen Blobs wird mit dem Inhalt des neuen Blobs überschrieben. Um partielle Updates für den Inhalt eines Blockblobs mithilfe einer Quell-URL durchzuführen, verwenden Sie die API Put Blob From URL in Verbindung mit Put Block List.

Die Größe des Quellblobs kann bis zu einer maximalen Länge von 5.000 Mebibytes (MiB) sein.

Anforderung

Sie können die Put Blob From URL wie folgt erstellen. Es wird empfohlen, HTTPS zu verwenden. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos:

PUT-Methodenanforderungs-URI HTTP-Version
https://myaccount.blob.core.windows.net/mycontainer/myblob HTTP/1.1

Emulierte Speicherdienstanforderung

Wenn Sie eine Anforderung für den emulierten Speicherdienst stellen, geben Sie den Emulatorhostnamen und den Blobdienstport als 127.0.0.1:10000an, gefolgt vom Namen des emulierten Speicherkontos:

PUT-Methodenanforderungs-URI HTTP-Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1

Der Speicheremulator unterstützt nur Blobgrößen von bis zu 2 Gibibytes (GiB).

Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für lokale Azure Storage-Entwicklung.

URI-Parameter

Die folgenden zusätzlichen Parameter können für den Anforderungs-URI angegeben werden:

Parameter BESCHREIBUNG
timeout Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blobdienstvorgänge.

Anforderungsheader

Die erforderlichen und optionalen Anforderungsheader werden in der folgenden Tabelle beschrieben:

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date oder x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Erforderlich für alle autorisierten Anforderungen. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
Content-Length Erforderlich. Gibt die Anzahl der Bytes an, die im Anforderungstext übertragen werden. Der Wert dieses Headers muss auf 0 festgelegt werden. Wenn die Länge nicht 0 ist, schlägt der Vorgang mit dem status Code 400 (Ungültige Anforderung) fehl.
x-ms-copy-source:name Erforderlich. Gibt die URL des Quellblobs an. Der Wert kann eine URL mit einer Länge von bis zu 2 Kibibytes (KiB) sein, die ein Blob angibt. Der Wert sollte so URL-codiert sein, wie er in einem Anforderungs-URI verwendet wird. Das Quellblob muss entweder öffentlich oder über eine Freigegebene Zugriffssignatur autorisiert sein. Wenn das Quellblob öffentlich ist, ist zum Ausführen des Vorgangs keine Autorisierung erforderlich. Wenn die Größe des Quellblobs größer als 5.000 MiB ist oder wenn die Quelle keinen gültigen Content-Length Wert zurückgibt, schlägt die Anforderung mit dem status Code 409 (Konflikt) fehl. Hier sind einige Beispiele für Quellobjekt-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>
x-ms-copy-source-authorization: <scheme> <signature> Optional. Gibt das Autorisierungsschema und die Signatur für die Kopierquelle an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Nur der Schematräger wird für Microsoft Entra unterstützt.
Dieser Header wird in Version 2020-10-02 und höher unterstützt.
x-ms-blob-type: BlockBlob Erforderlich. Gibt den Typ des zu erstellenden Blobs an, der lauten BlockBlobmuss. Wenn der Blobtyp nicht BlockBlobist, schlägt der Vorgang mit status Code 400 (Ungültige Anforderung) fehl.
Content-Type Optional. Der MIME-Inhaltstyp des BLOB. Der Standardtyp ist application/octet-stream.
Content-Encoding Optional. Gibt an, welche Inhaltscodierungen auf das BLOB angewendet wurden. Dieser Wert wird an den Client zurückgegeben, wenn der Vorgang Blob abrufen für die Blobressource ausgeführt wird. Wenn dieser Wert zurückgegeben wird, kann der Client ihn verwenden, um den Blobinhalt zu decodieren.
Content-Language Optional. Gibt die natürlichen Sprachen an, die von dieser Ressource verwendet werden.
Cache-Control Optional. Blob Storage speichert diesen Wert, verwendet oder ändert ihn jedoch nicht.
x-ms-source-content-md5 Optional. Ein MD5-Hash des Blobinhalts aus dem URI. Dieser Hash wird verwendet, um die Integrität des Blobs während des Transports der Daten aus dem URI zu überprüfen. Wenn dieser Header angegeben wird, vergleicht der Speicherdienst den Hash des Inhalts, der aus der Kopierquelle eingegangen ist, mit diesem Headerwert. Wenn dieser Header nicht angegeben wird, generiert Blob Storage einen MD5-Hash.

Wenn die beiden Hashs nicht übereinstimmen, schlägt der Vorgang mit Fehlercode 400 (Ungültige Anforderung) fehl.
x-ms-content-crc64 Optional. Ein CRC64-Hash des Blobinhalts. Mithilfe des Hash wird die Integrität des BLOB während der Übertragung überprüft. Wenn dieser Header angegeben ist, überprüft der Speicherdienst den eingegangenen Hash mit dem gesendeten. Wenn die beiden Hashs nicht übereinstimmen, schlägt der Vorgang mit Fehlercode 400 (Ungültige Anforderung) fehl. Dieser Header wird ab Version 02-02-2019 unterstützt.

Wenn sowohl Content-MD5- als auch x-ms-content-crc64-Header vorhanden sind, schlägt die Anforderung mit einer 400 (Ungültige Anforderung) fehl.
x-ms-blob-content-type Optional. Legt den Inhaltstyp des Blobs fest.
x-ms-blob-content-encoding Optional. Legt die Inhaltscodierung des BLOB fest.
x-ms-blob-content-language Optional. Legt die Sprache für den Inhalt des BLOB fest.
x-ms-blob-content-md5 Optional. Legt den MD5-Hash des BLOB fest.
x-ms-blob-cache-control Optional. Legt das Cachesteuerelement des BLOB fest.
x-ms-meta-name:value Optional. Die Name-Wert-Paare, die dem Blob als Metadaten zugeordnet sind.

Hinweis: Ab Version 2009-09-19 müssen Metadatennamen den Benennungsregeln für C#-Bezeichner entsprechen.
x-ms-encryption-scope Optional. Der Verschlüsselungsbereich, der zum Verschlüsseln des Anforderungsinhalts verwendet werden soll. Dieser Header wird ab Version 2019-02-02 unterstützt.
x-ms-tags Optional. Legt die angegebenen abfragezeichenfolgencodierten Tags für das Blob fest. Weitere Informationen finden Sie im Abschnitt Hinweise . Unterstützt in Version 2019-12-12 und höher.
x-ms-copy-source-tag-option Optional. Mögliche Werte sind REPLACE oder COPY (Groß-/Kleinschreibung beachten). Der Standardwert ist REPLACE.

Wenn COPY angegeben ist, werden die Tags aus dem Quellblob in das Zielblob kopiert. Das Quellblob muss privat sein, und die Anforderung muss über die Berechtigung zum Abrufen von Blobtags für das Quellblob und Zum Festlegen von Blobtags für das Zielblob verfügen. Dies verursacht einen zusätzlichen Aufruf des Vorgangs Get Blob Tags für das Quellkonto.

REPLACE legt Tags fest, die x-ms-tags vom Header für das Zielblob angegeben werden. Wenn REPLACE verwendet wird und keine Tags von x-ms-tagsangegeben werden, werden keine Tags für das Zielblob festgelegt. Angeben von COPY und x-ms-tags führt zu einem 409 (Konflikt).

Unterstützt in Version 2021-04-10 und höher.
x-ms-copy-source-blob-properties Optional. Gibt das Verhalten der Quellblobeigenschaften zum Kopieren an. Wenn auf Truefestgelegt ist, werden die Eigenschaften des Quellblobs in das neue Blob kopiert. Der Standardwert ist True.
x-ms-source-if-modified-since Optional. Ein DateTime-Wert. Geben Sie diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn das Quellblob seit dem angegebenen Datum/der angegebenen Uhrzeit geändert wurde. Wenn das Quellblob nicht geändert wurde, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück. Dieser Header kann nicht angegeben werden, wenn es sich bei der Quelle um eine Azure Files-Freigabe handelt.
x-ms-source-if-unmodified-since Optional. Ein DateTime-Wert. Geben Sie diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn das Quellblob seit dem angegebenen Datum/der angegebenen Uhrzeit nicht geändert wurde. Wenn das Quellblob geändert wurde, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück. Dieser Header kann nicht angegeben werden, wenn es sich bei der Quelle um eine Azure Files-Freigabe handelt.
x-ms-source-if-match Optional. Ein ETag-Wert. Geben Sie diesen bedingten Header an, um das Quellblob nur dann zu platzieren, wenn sein ETag mit dem angegebenen Wert übereinstimmt. Wenn die ETag-Werte nicht übereinstimmen, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück. Dieser Header kann nicht angegeben werden, wenn es sich bei der Quelle um eine Azure Files-Freigabe handelt.
x-ms-source-if-none-match Optional. Ein ETag-Wert. Geben Sie diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn sein ETag nicht mit dem angegebenen Wert übereinstimmt. Wenn die Werte identisch sind, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück. Dieser Header kann nicht angegeben werden, wenn es sich bei der Quelle um eine Azure Files-Freigabe handelt.
If-Modified-Since Optional. Ein DateTime-Wert. Geben Sie diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn das Zielblob seit dem angegebenen Datum/der angegebenen Uhrzeit geändert wurde. Wenn das Zielblob nicht geändert wurde, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück.
If-Unmodified-Since Optional. Ein DateTime-Wert. Geben Sie diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn das Zielblob seit dem angegebenen Datum/der angegebenen Uhrzeit nicht geändert wurde. Wenn das Zielblob geändert wurde, gibt Blob Storage status Code 412 (Fehler bei der Vorbedingung) zurück.
If-Match Optional. Ein ETag-Wert. Geben Sie einen ETag-Wert für diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn der angegebene ETag-Wert mit dem ETag Wert für ein vorhandenes Zielblob übereinstimmt. Wenn das ETag für das Zielblob nicht mit dem für If-Matchangegebenen ETag übereinstimmt, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück.
If-None-Match Optional. Ein ETag-Wert oder das Platzhalterzeichen (*).

Geben Sie einen ETag-Wert für diesen bedingten Header an, um das Blob nur dann zu platzieren, wenn der angegebene ETag-Wert nicht mit dem ETag-Wert für das Zielblob übereinstimmt.

Geben Sie das Platzhalterzeichen (*) an, um den Vorgang nur auszuführen, wenn das Zielblob nicht vorhanden ist.

Wenn die angegebene Bedingung nicht erfüllt ist, gibt Blob Storage status Code 412 (Vorbedingung fehlgeschlagen) zurück.
x-ms-lease-id:<ID> Erforderlich, wenn das BLOB über eine aktive Lease verfügt. Um diesen Vorgang für ein BLOB mit einer aktiven Lease auszuführen, geben Sie die gültige Lease-ID für diesen Header an.
x-ms-blob-content-disposition Optional. Legt den Content-Disposition-Header des BLOBs fest. Verfügbar für Version 2013-08-15 und höher.

Das Content-Disposition Antwortheaderfeld gibt zusätzliche Informationen zur Verarbeitung der Antwortnutzlast an und kann zum Anfügen zusätzlicher Metadaten verwendet werden. Wenn der Header beispielsweise auf attachmentfestgelegt ist, gibt dies an, dass der Benutzer-Agent die Antwort nicht anzeigen soll. Stattdessen sollte ein Dialogfeld Speichern unter mit einem anderen Dateinamen als dem angegebenen Blobnamen angezeigt werden.

Die Antwort aus den Vorgängen Get Blob und Get Blob Properties enthält den content-disposition Header.
Origin Optional. Gibt die Ursprungsdomäne an, von der die Anforderung ausgegeben wird. Wenn dieser Header vorhanden ist, werden CORS (Cross-Origin Resource Sharing)-Header für die Antwort erzeugt. Weitere Informationen finden Sie unter CORS-Unterstützung für die Azure Storage-Dienste.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der in den Analyseprotokollen aufgezeichnet wird, wenn die Speicheranalyseprotokollierung aktiviert ist. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt.
x-ms-access-tier Optional. Gibt die Ebene an, die für das Blob festgelegt werden soll. Gültige Werte für Blockblobebenen sind Hot, Cool, Coldund Archive. Hinweis: Cold Die Ebene wird ab Version 2021-12-02 unterstützt. Hot, Coolund Archive werden ab Version 2018-11-09 unterstützt. Weitere Informationen zum Blockblobtiering finden Sie unter Speicherebenen heiß, kalt und archivieren.
x-ms-expiry-option Optional. Version 2023-08-03 und höher. Gibt die Ablaufdatumsoption für die Anforderung an. Weitere Informationen finden Sie unter ExpiryOption. Dieser Header ist für Konten gültig, deren hierarchischer Namespace aktiviert ist.
x-ms-expiry-time Optional. Version 2023-08-03 und höher. Gibt den Zeitpunkt an, zu dem das Blob auf Ablauf festgelegt ist. Das Format für das Ablaufdatum variiert je nach x-ms-expiry-option. Weitere Informationen finden Sie unter ExpiryOption. Dieser Header ist für Konten gültig, deren hierarchischer Namespace aktiviert ist.

Dieser Vorgang unterstützt auch die Verwendung bedingter Header zum Schreiben des Blobs nur, wenn eine bestimmte Bedingung erfüllt ist. Weitere Informationen finden Sie unter Angeben von bedingten Headern für Blob Storage-Vorgänge.

Anforderungsheader (vom Kunden bereitgestellte Verschlüsselungsschlüssel)

Die folgenden Header können bei der Anforderung zum Verschlüsseln eines Blobs mit einem vom Kunden bereitgestellten Schlüssel angegeben werden. Die Verschlüsselung mit einem vom Kunden bereitgestellten Schlüssel (und der entsprechenden Gruppe von Headern) ist optional.

Anforderungsheader BESCHREIBUNG
x-ms-encryption-key Erforderlich. Der Base64-codierte AES-256-Verschlüsselungsschlüssel.
x-ms-encryption-key-sha256 Erforderlich. Der Base64-codierte SHA256-Hash des Verschlüsselungsschlüssels.
x-ms-encryption-algorithm: AES256 Erforderlich. Gibt den Algorithmus an, der für die Verschlüsselung verwendet werden soll. Der Wert dieses Headers muss auf AES256 festgelegt sein.

Anforderungstext

Keine.

Beispiel für eine Anforderung

Im folgenden Beispiel wird eine Anforderung zum Erstellen eines Block-BLOB veranschaulicht:

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1  
  
Request Headers:  
x-ms-version: 2020-04-08  
x-ms-date: <date>  
Content-Type: text/plain; charset=UTF-8  
x-ms-blob-content-disposition: attachment; filename="fname.ext"  
x-ms-blob-type: BlockBlob  
x-ms-meta-m1: v1  
x-ms-meta-m2: v2  
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-expiry-option: RelativeToNow
x-ms-expiry-time: 30000
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  
Content-Length: 0

Antwort

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 201 (Erstellt) zurückgegeben.

Weitere Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
ETag Das ETag enthält einen Wert, den der Client zum Ausführen von bedingten PUT-Vorgängen mit dem If-Match-Anforderungsheader verwenden kann. Der ETag-Wert ist in Anführungszeichen eingeschlossen.
Last-Modified Das Datum/die Uhrzeit der letzten Änderung des Blobs. Das Datumsformat entspricht RFC 1123. Weitere Informationen finden Sie unter Darstellen von Datums-/Uhrzeitwerten in Headern.

Bei jedem Schreibvorgang für das BLOB (einschließlich von Updates der Metadaten oder Eigenschaften des BLOB) wird der Zeitpunkt der letzten Änderung des BLOB geändert.
Content-MD5 Wird für ein Blockblob zurückgegeben, damit der Client die Integrität des Nachrichteninhalts überprüfen kann. Der Content-MD5 zurückgegebene Wert wird von Blob Storage berechnet. Dieser Header wird auch dann zurückgegeben, wenn die Anforderung keine Content-MD5 Header oder x-ms-blob-content-md5 enthält.
x-ms-content-crc64 Wird für ein Blockblob zurückgegeben, damit der Client die Integrität des Nachrichteninhalts überprüfen kann. Der x-ms-content-crc64 zurückgegebene Wert wird von Blob Storage berechnet. Dieser Header wird immer zurückgegeben.
x-ms-request-id Identifiziert eindeutig die Anforderung, die gestellt wurde, und Sie können sie verwenden, um die Problembehandlung für die Anforderung zu beheben. Weitere Informationen finden Sie unter Problembehandlung bei API-Vorgängen.
x-ms-version Die Version von Blob Storage, die zum Ausführen der Anforderung verwendet wurde.
Date Ein UTC-Datums-/Uhrzeitwert, der vom Dienst generiert wird, der die Uhrzeit angibt, zu der die Antwort initiiert wurde.
Access-Control-Allow-Origin Wird zurückgegeben, wenn die Anforderung einen Origin-Header enthält und CORS mit einer Abgleichsregel aktiviert ist. Dieser Header gibt den Wert des Ursprungsanforderungsheaders zurück, wenn eine Übereinstimmung vorliegt.
Access-Control-Expose-Headers Wird zurückgegeben, wenn die Anforderung einen Origin-Header enthält und CORS mit einer Abgleichsregel aktiviert ist. Gibt die Liste der Antwortheader zurück, die gegenüber dem Client oder Aussteller der Anforderung verfügbar gemacht werden sollen.
Access-Control-Allow-Credentials Wird zurückgegeben, wenn die Anforderung einen Origin Header enthält und CORS mit einer übereinstimmenden Regel aktiviert ist, die nicht alle Ursprünge zulässt. Dieser Header ist auf truefestgelegt.
x-ms-request-server-encrypted: true/false Der Wert dieses Headers wird auf true festgelegt, wenn der Inhalt der Anforderung mithilfe des angegebenen Algorithmus erfolgreich verschlüsselt wurde. Andernfalls wird der Wert auf false festgelegt.
x-ms-encryption-key-sha256 Wird zurückgegeben, wenn die Anforderung einen vom Kunden bereitgestellten Schlüssel für die Verschlüsselung verwendet hat, damit der Client sicherstellen kann, dass der Inhalt der Anforderung mithilfe des bereitgestellten Schlüssels erfolgreich verschlüsselt wurde.
x-ms-encryption-scope Wird zurückgegeben, wenn die Anforderung einen Verschlüsselungsbereich verwendet hat, damit der Client sicherstellen kann, dass der Inhalt der Anforderung mithilfe des Verschlüsselungsbereichs erfolgreich verschlüsselt wurde.
x-ms-version-id: <DateTime> Gibt einen undurchsichtigen DateTime Wert zurück, der das Blob eindeutig identifiziert. Der Wert dieses Headers gibt die Version des Blobs an, und er kann in nachfolgenden Anforderungen für den Zugriff auf das Blob verwendet werden.

Antworttext

Keine.

Beispiel für eine Antwort

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==  
x-ms-content-crc64: 77uWZTolTHU
Date: <date>  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: <date>  
Access-Control-Allow-Origin: http://contoso.com  
Access-Control-Expose-Headers: Content-MD5  
Access-Control-Allow-Credentials: True  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-version-id: <DateTime>  

Authorization

Beim Aufrufen eines Datenzugriffsvorgangs in Azure Storage ist eine Autorisierung erforderlich. Sie können den Put Blob From URL Vorgang wie unten beschrieben autorisieren.

Wenn eine Anforderung Tags mit dem Anforderungsheader x-ms-tags angibt, muss der Aufrufer die Autorisierungsanforderungen des Vorgangs Set Blob Tags erfüllen.

Wichtig

Microsoft empfiehlt die Verwendung Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen an Azure Storage zu autorisieren. Microsoft Entra ID bietet im Vergleich zur Autorisierung mit gemeinsam genutzten Schlüsseln überlegene Sicherheit und Benutzerfreundlichkeit.

Azure Storage unterstützt die Verwendung von Microsoft Entra ID zum Autorisieren von Anforderungen an Blobdaten. Mit Microsoft Entra ID können Sie die rollenbasierte Zugriffssteuerung (Azure RBAC) von Azure verwenden, um einem Sicherheitsprinzipal Berechtigungen zu erteilen. Der Sicherheitsprinzipal kann ein Benutzer, eine Gruppe, ein Anwendungsdienstprinzipal oder eine verwaltete Azure-Identität sein. Der Sicherheitsprinzipal wird von Microsoft Entra ID authentifiziert, um ein OAuth 2.0-Token zurückzugeben. Das Token kann anschließend zum Autorisieren einer Anforderung an den Blob-Dienst verwendet werden.

Weitere Informationen zur Autorisierung mit Microsoft Entra ID finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.

Berechtigungen

Nachfolgend sind die RBAC-Aktion aufgeführt, die für einen Microsoft Entra Benutzer, Gruppe, verwaltete Identität oder Dienstprinzipal erforderlich ist, um den Put Blob From URL Vorgang aufzurufen, und die integrierte Azure RBAC-Rolle mit den geringsten Berechtigungen, die diese Aktion enthält:

Weitere Informationen zum Zuweisen von Rollen mithilfe von Azure RBAC finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten.

Hinweise

Der Put Blob From URL Vorgang wird ab Version 2020-04-08 unterstützt.

In Version 2020-10-02 und höher wird Microsoft Entra Autorisierung für die Quelle des Kopiervorgangs unterstützt.

Das Quellblob kann von einem beliebigen Typ sein, einschließlich eines Blockblobs, eines Anfügeblobs oder eines Seitenblobs. Das Zielblob muss jedoch ein Blockblob sein.

Der Vorgang Put Blob From URL kopiert immer das gesamte Quellblob. Das Kopieren eines Bytesbereichs oder einer Reihe von Blöcken wird nicht unterstützt. Informationen zum Durchführen teilweiser Updates finden Sie unter Put Block From URL. Das Zielblob kann ein vorhandenes Blockblob oder ein neues Blob sein, das durch den Vorgang erstellt wird.

Wenn Sie ein Blockblob als Quellobjekt verwenden, werden alle zugesagten Blobinhalte kopiert. Die Blockliste wird jedoch nicht beibehalten, und Blöcke ohne Commit werden nicht kopiert. Der Inhalt des Zielblobs ist identisch mit dem der Quelle, aber die commitierte Blockliste wird nicht beibehalten.

Blobeigenschaften und Metadaten platzieren

Wenn Sie ein Blockblob aus einer Kopierquelle erstellen, werden die Standardblobeigenschaften standardmäßig aus dem Quellblob kopiert. Wenn die Anwendungsmetadaten in der Anforderung angegeben sind, werden sie gespeichert, ohne die Quellblobmetadaten zu kopieren. Um alle HTTP-Inhaltsheader explizit festzulegen, können Sie den entsprechenden Header in der Anforderung angeben.

  • Content-Type

  • Content-Encoding

  • Content-Length

  • Cache-Control

  • Content-Disposition

Die Größe des Zielblobs entspricht immer der Größe des Quellblobs. Der Content-Length Header muss in der Put Blob From URL Anforderung 0 sein (da kein Anforderungstext vorhanden ist), und die Inhaltslängeneigenschaft für das Zielblob wird aus der Größe der Quelle abgeleitet.

Benutzerdefinierte Eigenschaften "Blob aus URL platzieren"

Put Blob From Url folgt der gleichen Semantik wie Put Blob beim Festlegen benutzerdefinierter Eigenschaften, die standard-HTTP-Headern zugeordnet sind. Weitere Informationen finden Sie unter Benutzerdefinierte Blobeigenschaften.

Blobindextags

Wenn Tags für das Zielblob im x-ms-tags Header bereitgestellt werden, müssen sie abfragezeichenfolgencodiert sein. Tagschlüssel und -werte müssen den in Set Blob Tagsangegebenen Benennungs- und Längenanforderungen entsprechen. Darüber hinaus kann der x-ms-tags Header bis zu 2 KiB-Tags enthalten. Wenn weitere Tags erforderlich sind, verwenden Sie den Set Blob Tags Vorgang.

Wenn Tags nicht im x-ms-tags Header bereitgestellt werden, werden sie nicht aus dem Quellblob kopiert.

Verschlüsselungsbereiche und vom Kunden bereitgestellte Schlüssel

Die API Put Blob From URL unterstützt sowohl Verschlüsselungsbereiche als auch vom Kunden bereitgestellte Schlüssel, indem sie die x-ms-encryption-scope Header und x-ms-encryption-key verwendet.

Wenn der x-ms-copy-source Header auf das gleiche Quellblob wie das Zielblob im Anforderungs-URI verweist, führt der Put Blob From URL Vorgang eine synchrone direkte Neuschreibung des Blobs aus. Dadurch wird das Umschreiben eines Blobs ermöglicht, um einen anderen Verschlüsselungsschlüssel oder Einen anderen Verschlüsselungsbereich zu verwenden.

Abrechnung

Preisanforderungen können von Clients stammen, die Blob Storage-APIs verwenden, entweder direkt über die Blob Storage-REST-API oder aus einer Azure Storage-Clientbibliothek. Für diese Anforderungen fallen Gebühren pro Transaktion an. Die Art der Transaktion wirkt sich auf die Belastung des Kontos aus. Beispielsweise werden Lesetransaktionen in eine andere Abrechnungskategorie als das Schreiben von Transaktionen angewendet. Die folgende Tabelle zeigt die Abrechnungskategorie für Put Blob From URL Anforderungen basierend auf dem Speicherkontotyp:

Vorgang Speicherkontotyp Abrechnungskategorie
Put Blob From URL (Zielkonto1) Premium, Blockblob
Standard „Allgemein v2“
Standard „Allgemein v1“
Schreibvorgänge
Put Blob From URL (Quellkonto2) Premium, Blockblob
Standard „Allgemein v2“
Standard „Allgemein v1“
Dient zum Lesen von Vorgängen.

1Das Zielkonto wird für eine Transaktion in Rechnung gestellt, um den Schreibvorgang zu initiieren.
2Das Quellkonto verursacht eine Transaktion für jede Leseanforderung an das Quellobjekt.

Wenn sich die Quell- und Zielkonten in verschiedenen Regionen befinden (z. B. USA, Norden und USA, Süden), wird außerdem die Bandbreite, die für die Übertragung der Anforderung verwendet wird, dem Quellspeicherkonto als Ausgehender Wert in Rechnung gestellt. Der Ausgang zwischen Konten innerhalb derselben Region ist kostenlos.

Schließlich werden beim Erstellen eines neuen Blobs mit einem anderen Namen innerhalb desselben Speicherkontos zusätzliche Speicherressourcen verwendet, sodass der Vorgang zu einer Gebühr für die Kapazitätsauslastung des Speicherkontos für diese zusätzlichen Ressourcen führt.

Informationen zu Preisen für die angegebenen Abrechnungskategorien finden Sie unter Azure Blob Storage Preise.

Weitere Informationen

Autorisieren von Anforderungen an AzureStorage-Status und FehlercodesBlobdienstfehlercodesFestlegen von Timeouts für Blobdienstvorgänge