Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта Copy Blob From URL
операция синхронно копирует большой двоичный объект в место назначения в учетной записи хранения для исходных больших двоичных объектов размером до 256 мебибайт (МиБ). Этот API доступен начиная с версии 2018-03-28.
Источником Copy Blob From URL
операции может быть любой зафиксированный блочный BLOB-объект в любой учетной записи хранения Azure, которая является общедоступной или авторизованной с помощью подписанного URL-адреса.
Просьба
Можно создать запрос Copy Blob From URL
следующим образом. Мы рекомендуем HTTPS. Замените myaccount именем учетной записи хранения, mycontainer — именем контейнера, а myblob — именем целевого BLOB-объекта.
URI запроса метода PUT | Версия HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob |
HTTP/1.1 |
URI для эмулируемой службы хранилища
При отправке запроса к эмулированной службе хранения укажите имя узла эмулятора и порт хранилища BLOB-объектов Azure как 127.0.0.1:10000
, а затем имя эмулируемой учетной записи хранения:
URI запроса метода PUT | Версия HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob |
HTTP/1.1 |
Дополнительные сведения см. в статье Использование эмулятора Azurite для разработки локальной службы хранилища Azure.
Параметры URI
Можно указать следующие дополнительные параметры в URI запроса:
Параметр | Описание |
---|---|
timeout |
Необязательно. Параметр timeout выражается в секундах. Дополнительные сведения см. в статье Установка времени ожидания для операций Хранилища BLOB-объектов. |
Заголовки запросов
В следующей таблице описаны обязательные и необязательные заголовки запросов:
Заголовок запроса | Описание |
---|---|
Authorization |
Обязательное. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure. |
Date или x-ms-date |
Обязательное. Указывает универсальное время (UTC) для запроса. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure. |
x-ms-version |
Требуется для всех авторизованных запросов. Дополнительные сведения см. в разделе Управление версиями служб хранилища Azure. |
x-ms-meta-name:value |
Необязательно. Указывает определяемую пользователем пару "имя-значение", связанную с большим двоичным объектом. Если пары "имя-значение" не указаны, операция скопирует метаданные из исходного большого двоичного объекта или файла в целевой большой двоичный объект. Если указана одна или несколько пар "имя-значение", целевой BLOB-объект создается с указанными метаданными, а метаданные не копируются из исходного BLOB-объекта или файла. Начиная с версии 2009-09-19, имена метаданных должны соответствовать правилам именования для идентификаторов C#. Дополнительные сведения см. в статье Именование контейнеров, больших двоичных объектов и метаданных и ссылки на них. |
x-ms-encryption-scope |
Необязательно. Указывает область шифрования для шифрования содержимого запроса. Этот заголовок поддерживается в версии 2020-12-06 и более поздних. |
x-ms-tags |
Необязательно. Задает теги, закодированные в строке запроса, на большом двоичном объекте. Теги не копируются из скопированного источника. Дополнительные сведения см. в разделе Замечания. Поддерживается в версии 2019-12-12 и более поздних версий. |
x-ms-copy-source-tag-option |
Необязательно. Возможные значения: REPLACE and COPY (с учетом регистра). Значение по умолчанию — REPLACE .Если COPY указано, теги из исходного BLOB-объекта будут скопированы в целевой BLOB-объект. Исходный большой двоичный объект должен быть частным, а запрос должен иметь разрешение на операцию Получение тегов BLOB-объектов в исходном BLOB-объекте и операцию Set Blob Tags в конечном BLOB-объекте. Это влечет за собой дополнительный вызов Get Blob Tags операции на исходной учетной записи.REPLACE установит теги, указанные в x-ms-tags заголовке, в целевом BLOB-объекте. Если x-ms-tags указано REPLACE и нет тегов, то теги не будут заданы в целевом BLOB-объекте. Указание COPY и x-ms-tags приведет к ошибке 409 (Конфликт).Поддерживается в версии 2021-04-10 и более поздних версий. |
x-ms-source-if-modified-since |
Необязательно. Некоторое значение DateTime . Укажите этот условный заголовок, чтобы скопировать большой двоичный объект, только если исходный большой двоичный объект был изменен с указанной даты и времени. Если исходный большой двоичный объект не был изменен, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительного условия). Вы не можете указать этот заголовок, если источником является файл Azure. |
x-ms-source-if-unmodified-since |
Необязательно. Некоторое значение DateTime . Укажите этот условный заголовок, чтобы скопировать большой двоичный объект, только если исходный большой двоичный объект не был изменен с указанной даты и времени. Если исходный большой двоичный объект был изменен, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительных условий). Вы не можете указать этот заголовок, если источником является файл Azure. |
x-ms-source-if-match |
Необязательно. Значение типа ETag . Укажите этот условный заголовок, чтобы скопировать исходный большой двоичный объект только в том случае, если его ETag значение совпадает с указанным. Если значения не совпадают, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительного условия). Вы не можете указать этот заголовок, если источником является файл Azure. |
x-ms-source-if-none-match |
Необязательно. Значение типа ETag . Укажите этот условный заголовок, чтобы скопировать большой двоичный объект только в том случае, если его ETag значение не соответствует указанному значению. Если значения идентичны, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительных условий). Вы не можете указать этот заголовок, если источником является файл Azure. |
If-Modified-Since |
Необязательно. Некоторое значение DateTime . Укажите этот условный заголовок, чтобы скопировать большой двоичный объект, только если целевой большой двоичный объект был изменен с указанной даты и времени. Если целевой BLOB-объект не был изменен, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительного условия). |
If-Unmodified-Since |
Необязательно. Некоторое значение DateTime . Укажите этот условный заголовок, чтобы скопировать большой двоичный объект, только если целевой большой двоичный объект не был изменен с указанной даты и времени. Если целевой большой двоичный объект был изменен, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительных условий). |
If-Match |
Необязательно. Значение типа ETag . Укажите значение для этого условного ETag заголовка, чтобы скопировать BLOB-объект только в том случае, если указанное ETag значение совпадает со значением ETag для существующего BLOB-объекта назначения. Если значения не совпадают, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительного условия). |
If-None-Match |
Необязательно. Значение ETag или подстановочный знак (*).Укажите ETag значение для этого условного заголовка, чтобы скопировать большой двоичный объект только в том случае, если указанное ETag значение не совпадает со значением ETag для целевого большого двоичного объекта.Укажите подстановочный знак (*) для выполнения операции, только если целевой большой двоичный объект не существует. Если указанное условие не выполнено, хранилище BLOB-объектов возвращает код состояния 412 (сбой предварительных условий). |
x-ms-copy-source:name |
Обязательное. Указывает URL-адрес исходного большого двоичного объекта. Значением может быть URL-адрес длиной до 2 кибибайт (КиБ), указывающий большой двоичный объект. Значение должно быть закодировано URL-адресом, так как оно будет отображаться в URI запроса. Исходный БОЛЬШОЙ двоичный объект должен быть общедоступным или авторизоваться с помощью подписанного URL-адреса. Если исходный большой двоичный объект является общедоступным, для выполнения операции не требуется авторизация. Если размер исходного большого двоичного объекта превышает 256 МиБ, запрос завершается ошибкой 409 (конфликт). Тип BLOB-объекта исходного BLOB-объекта должен быть блочным. Ниже приведены некоторые примеры URL-адресов исходного объекта: - 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> |
Необязательно. Указывает схему авторизации и подпись источника копирования. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure. Для Microsoft Entra поддерживается только носитель схемы. Этот заголовок поддерживается в версии 2020-10-02 и более поздних версиях. |
x-ms-requires-sync:true |
Обязательное. Указывает, что это синхронная Copy Blob From URL , а не асинхронная Copy Blob операция. |
x-ms-source-content-md5 |
Необязательно. Указывает MD5-хэш содержимого BLOB-объекта из URI. Этот хэш используется для проверки целостности большого двоичного объекта во время передачи данных из URI. При указании этого заголовка служба хранилища сравнивает хэш содержимого, полученного из источника копирования, с этим значением заголовка. Хэш MD5 не хранится вместе с большим двоичным объектом. Если два хэша не соответствуют, операция завершается ошибкой с кодом 400 (недопустимый запрос). |
x-ms-lease-id:<ID> |
Обязательно, если целевой BLOB-объект имеет активную аренду. Идентификатор аренды, указанный для этого заголовка, должен соответствовать идентификатору аренды целевого большого двоичного объекта. Если запрос не содержит идентификатор аренды или он недействителен, операция завершается ошибкой с кодом состояния 412 (ошибка предварительного условия). Если этот заголовок указан и целевой BLOB-объект в настоящее время не имеет активной аренды, операция завершается ошибкой с кодом состояния 412 (сбой предварительного условия). В версии 2012-02-12 и более поздних версиях это значение должно указывать активную, бесконечную аренду для арендованного большого двоичного объекта. Код аренды с ограниченным сроком действия завершается ошибкой с кодом состояния 412 (Ошибка предварительного условия). |
x-ms-client-request-id |
Необязательно. Предоставляет созданное клиентом непрозрачное значение с ограничением символов 1-KiB, записанным в журналах при настройке ведения журнала. Настоятельно рекомендуется использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. |
x-ms-access-tier |
Необязательно. Указывает уровень, который должен быть задан для целевого BLOB-объекта. Этот заголовок предназначен для страничных BLOB-объектов в премиум-аккаунте только с версией 2017-04-17 и более поздними. Полный список поддерживаемых уровней см. в статье Высокопроизводительное хранилище класса Premium и управляемые диски для виртуальных машин. Этот заголовок поддерживается в версии 2018-11-09 и более поздних для блочных BLOB-объектов. Распределение блочных BLOB-объектов по уровням поддерживается в учетных записях Хранилища BLOB-объектов или общего назначения версии 2. Допустимые значения: Hot , Cool , Cold и Archive .
Примечание. УровеньCold поддерживается для версии 2021-12-02 и более поздних версий. Подробные сведения о распределении по уровням блочных BLOB-объектов см. в статье Горячий, холодный и архивный уровни хранилища. |
x-ms-file-request-intent |
Обязательно, если x-ms-copy-source заголовок является URL-адресом файла Azure и x-ms-copy-source-authorization в заголовке указан маркер OAuth. Допустимое значение равно backup . Этот заголовок указывает, что Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action или Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action следует предоставить, если они включены в политику RBAC, назначенную удостоверению, авторизованному с помощью заголовка x-ms-copy-source-authorization . Доступно для версии 2025-07-05 и выше. |
Основное содержание запроса
Нет.
Ответ
Ответ включает код состояния HTTP и набор заголовков ответа.
Код состояния
Успешная операция возвращает код состояния 202 (принято).
Сведения о кодах состояния см. в коды состояния и коды ошибок.
Заголовки ответа
Ответ для этой операции содержит следующие заголовки. Ответ также может включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.
Заголовок ответа | Описание |
---|---|
ETag |
Если копирование завершено, содержит ETag значение целевого BLOB-объекта. Если копия не завершена, содержит ETag значение пустого большого двоичного объекта, созданного в начале копирования.Значение ETag указано в кавычках. |
Last-Modified |
Возвращает дату и время завершения операции копирования в целевой BLOB-объект. |
x-ms-request-id |
Уникально идентифицирует выполненный запрос. Его можно использовать для устранения неполадок запроса. Дополнительные сведения см. в статье Устранение неполадок с операциями API. |
x-ms-version |
Указывает версию хранилища BLOB-объектов, которая используется для выполнения запроса. |
Date |
Значение даты и времени в формате UTC, указывающее время отправки ответа службой. |
x-ms-copy-id: <id> |
Идентификатор строки для этой операции копирования. |
x-ms-copy-status: <success> |
Указывает состояние операции копирования. Значение of success означает, что операция завершилась успешно. |
x-ms-client-request-id |
Можно использовать для устранения неполадок запросов и соответствующих ответов. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если оно присутствует в запросе, а значение — не более 1024 видимых символов ASCII. Если в запросе отсутствует заголовок x-ms-client-request-id , этот заголовок не будет присутствовать в ответе. |
x-ms-request-server-encrypted: true/false |
Задайте значение в true случае, если содержимое запроса успешно зашифровано с помощью указанного алгоритма. В противном случае значение равно false . |
x-ms-encryption-scope |
Возвращается, если в запросе использовалась область шифрования, чтобы клиент мог убедиться, что содержимое запроса успешно зашифровано с помощью области шифрования. |
Основная часть ответа
Нет.
Пример ответа
Ниже приведен пример ответа на запрос на копирование большого двоичного объекта:
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: 2018-03-28
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: success
Date: <date>
Авторизация
Авторизация требуется при вызове любой операции доступа к данным в службе хранилища Azure. В следующей таблице описывается, как можно авторизовать конечные и исходные объекты для операции Copy Blob From URL
:
Тип объекта | Авторизация по Microsoft Entra ID | Авторизация с помощью подписанного URL-адреса (SAS) | Авторизация с помощью общего ключа (или Shared Key Lite) |
---|---|---|---|
Целевой блочный BLOB-объект | Да | Да | Да |
Исходный блочный BLOB-объект в той же учетной записи хранения | Да | Да | Да |
Исходный блочный BLOB-объект в другой учетной записи хранения | нет | Да | нет |
Если в заголовке запроса указаны теги x-ms-tags
, вызывающий объект должен соответствовать требованиям авторизации операции Set Blob Tags .
Вы можете авторизовать операцию Copy Blob From URL
, как описано ниже. Обратите внимание, что исходный большой двоичный объект в другой учетной записи хранения должен быть авторизован отдельно с помощью маркера SAS с разрешением на чтение (r). Дополнительные сведения об авторизации исходных BLOB-объектов см. в сведениях о заголовке x-ms-copy-source
запроса.
Это важно
Корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов в службу хранилища Azure. Идентификатор Microsoft Entra обеспечивает более высокую безопасность и удобство использования по сравнению с авторизацией общего ключа.
Служба хранилища Azure поддерживает использование идентификатора Microsoft Entra для авторизации запросов к данным BLOB-объектов. С помощью идентификатора Microsoft Entra можно использовать управление доступом на основе ролей Azure (Azure RBAC) для предоставления разрешений субъекту безопасности. Субъект безопасности может быть пользователем, группой, субъектом-службой приложений или управляемым удостоверением Azure. Принципал безопасности проходит проверку подлинности с помощью Microsoft Entra ID, чтобы вернуть токен OAuth 2.0. Затем маркер можно использовать для авторизации запроса к службе BLOB-объектов.
Дополнительные сведения об авторизации с помощью идентификатора Microsoft Entra см. в статье Авторизация доступа к большим двоичным объектам с помощью идентификатора Microsoft Entra ID.
Разрешения
Ниже приведены действия RBAC, необходимые для пользователя Microsoft Entra, группы, управляемого удостоверения или субъекта-службы для вызова операции Copy Blob From URL
и минимально привилегированной встроенной роли Azure RBAC, которая включает в себя следующее:
Целевой большой двоичный объект
- Действие Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (для записи в существующий BLOB-объект) или Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (для записи нового BLOB-объекта в место назначения)
- встроенная роль с минимальными привилегиями:участник данных BLOB-объектов хранилища
Исходный большой двоичный объект в той же учетной записи хранения
- Действие Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- Встроенная роль с наименьшими привилегиями:Средство чтения данных BLOB-объектов хранилища
Дополнительные сведения о назначении ролей с помощью Azure RBAC см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.
Замечания
Исходный и целевой BLOB-объекты для Copy Blob From URL
операции должны быть блочными BLOB-объектами.
В версии 2020-10-02 и более поздних версиях авторизация Microsoft Entra поддерживается для источника операции копирования.
Операция Copy Blob From URL
всегда копирует весь исходный блоб. Копирование диапазона байтов или набора блоков не поддерживается.
Вы можете скопировать исходный BLOB-объект в целевой BLOB-объект с другим именем. Целевой BLOB-объект может быть существующим блочным BLOB-объектом или новым BLOB-объектом, созданным операцией копирования.
При копировании из блочного BLOB-объекта копируются все зафиксированные блокировки и их идентификаторы блокировок. Незафиксированные блокировки не копируются. В конце операции копирования целевой BLOB-объект будет иметь то же количество зафиксированных блоков, что и исходный.
Значение ETag
блочного BLOB-объекта изменяется в момент Copy Blob From URL
начала и завершения операции.
Копирование свойств и метаданных BLOB-объектов
При копировании блочного BLOB-объекта следующие системные свойства копируются в целевой BLOB-объект с теми же значениями:
Content-Type
Content-Encoding
Content-Language
Content-Length
Cache-Control
Content-MD5
Content-Disposition
Зафиксированный список блокировок исходного BLOB-объекта также копируется в целевой BLOB-объект. Любые незафиксированные блокировки не копируются.
Целевой BLOB-объект всегда имеет тот же размер, что и исходный BLOB-объект, поэтому значение Content-Length
заголовка для конечного BLOB-объекта совпадает со значением заголовка для исходного BLOB-объекта.
x-ms-tags
Если заголовок содержит теги для целевого BLOB-объекта, они должны быть закодированы в строке запроса. Ключи и значения тегов должны соответствовать требованиям к именованию и длине, указанным в операции Установка тегов BLOB-объектов .
Заголовок x-ms-tags
может содержать до 2 килобит тегов. Если вам нужно больше тегов, воспользуйтесь Set Blob Tags
этой операцией.
x-ms-tags
Если в заголовке не указаны теги, они не копируются из исходного большого двоичного объекта.
Копирование арендованного большого двоичного объекта
Операция Copy Blob From URL
считывает данные только из исходного большого двоичного объекта, поэтому состояние аренды исходного большого двоичного объекта не имеет значения.
Выставление счетов
Запросы цен могут возникать от клиентов, использующих API хранилища BLOB-объектов, непосредственно через REST API хранилища BLOB-объектов или из клиентской библиотеки службы хранилища Azure. Эти запросы начисляют плату за транзакцию. Тип транзакции влияет на то, как взимается учетная запись. Например, транзакции чтения начисляются в другую категорию выставления счетов, чем операции записи. В следующей таблице показана категория выставления счетов для запросов Copy Blob From URL
на основе типа учетной записи хранения:
Операция | Тип учётной записи хранилища | Категория выставления счетов |
---|---|---|
Копирование большого двоичного объекта из URL-адреса (целевая учетная запись1) | Блочный BLOB-объект категории "Премиум". Стандартная версия общего назначения v2 Стандартная версия общего назначения 1 |
Операции записи |
Копирование большого двоичного объекта с URL-адреса (исходная учетная запись2) | Блочный BLOB-объект категории "Премиум". Стандартная версия общего назначения v2 Стандартная версия общего назначения 1 |
Операции чтения |
1Целевая учетная запись взимается за одну транзакцию, чтобы инициировать запись.
2исходная учетная запись вызывает одну транзакцию для каждого запроса на чтение исходного объекта.
Дополнительные сведения о ценах для указанных категорий выставления счетов см. в цен на хранилище BLOB-объектов Azure.
Кроме того, если исходная и целевая учетные записи находятся в разных регионах (например, Северная и Южная части США), пропускная способность, используемая для передачи запроса, оплачивается исходящей учетной записью хранения в качестве исходящего трафика. Исходящие данные между учетными записями в одном регионе бесплатны.
При копировании исходного BLOB-объекта в целевой BLOB-объект с другим именем в той же учетной записи используются дополнительные ресурсы хранилища для нового BLOB-объекта. Затем операция копирования приводит к списанию платы за использование емкости учетной записи хранения для этих дополнительных ресурсов.
См. также
Авторизация запросов в службу хранилища Azure
Коды состояний и ошибок
коды ошибок хранилища BLOB-объектов
Понимание того, как на моментальные снимки начисляются расходы