Python: загрузка файла в Google Cloud Storage с использованием URL - PullRequest
1 голос
/ 24 октября 2019

У меня есть URL (https://example.com/myfile.txt) файла, и я хочу загрузить его в свое хранилище (gs://my-sample-bucket) в Google Cloud Storage.

Что я сейчас делаю:

  1. Загрузка файла в мою систему с использованием библиотеки запросов.

  2. Загрузка этого файла в мое ведро с помощью функции python.

Есть ли способ загрузить файл напрямую, используя URL-адрес.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Существует способ сделать это, используя задание Cloud Storage Transfer , но в зависимости от вашего случая это может стоить того или нет. Вам нужно создать задание на передачу на передать список URL .

Я пометил этот вопрос как дублированный с this .

0 голосов
/ 24 октября 2019

Вы можете использовать urllib2 или библиотеку запросов, чтобы получить файл из HTTP, а затем ваш существующий код Python для загрузки в облачное хранилище. Нечто подобное должно работать:

import urllib2
from google.cloud import storage

client = storage.Client()

filedata = urllib2.urlopen('http://example.com/myfile.txt')
datatoupload = filedata.read()

bucket = client.get_bucket('bucket-id-here')
blob = Blob("myfile.txt", bucket)
blob.upload_from_string(datatoupload)

Он по-прежнему загружает файл в память вашей системы, но я не думаю, что есть способ заставить Cloud Storage сделать это для вас.

...