Загрузить файл с URL-адреса в хранилище BLOB-объектов Microsoft Azure - PullRequest
0 голосов
/ 06 ноября 2018

Нет проблем загрузить файл по локальному пути (с моего компьютера). Тем не менее, я не нашел, как загрузить с определенного URL.

Если это возможно - необходимо решение на Python. Есть документация только для локальных файлов https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python

Как это сделать для удаленного URL?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Функцию async copy blob можно использовать для создания большого двоичного объекта из общедоступного URL-адреса. Пожалуйста, смотрите образец кода ниже:

from azure.storage.blob import BlockBlobService, PublicAccess
from azure.storage.blob.models import Blob

def run_sample():
    block_blob_service = BlockBlobService(account_name='your_name', account_key='your_key')
    container_name ='t1s'

    block_blob_service.copy_blob(container_name,'remoteURL.pdf','https://media.readthedocs.org/pdf/azure-storage/v0.20.3/azure-storage.pdf')


# Main method.
if __name__ == '__main__':
    run_sample()
0 голосов
/ 07 ноября 2018

Можно first download the file as stream, затем вызвать метод create_blob_from_stream.

Ниже приведен демонстрационный код:

from azure.storage.blob import BlockBlobService, PublicAccess
from azure.storage.blob.models import Blob
import requests

def run_sample():
    block_blob_service = BlockBlobService(account_name='your_name', account_key='your_key')
    container_name ='t1s'

    response = requests.get('https://media.readthedocs.org/pdf/azure-storage/v0.20.3/azure-storage.pdf',stream=True)       
    block_blob_service.create_blob_from_stream(container_name,'remoteURL.pdf',response.raw)


# Main method.
if __name__ == '__main__':
    run_sample()

Результат теста, как показано ниже: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...