Загрузить данные из Google Bucket Cloud - PullRequest
0 голосов
/ 17 мая 2018

Вот функция загрузки данных из Google Cloud Bucket.

action_dataset_folder_path = 'action-data-set'
zip_path = 'actions.zip'
url='http://console.cloud.google.com/storage/browser/actions'

class LoadProgress(tqdm):
    last_block = 0

    def hook(self, block_num=1, block_size=1, total_size=None):
        self.total = total_size
        self.update((block_num - self.last_block) * block_size)
        self.last_block = block_num

if not isfile(zip_path):
    with LoadProgress(unit='B', unit_scale=True, miniters=1, desc='actions-Dataset') as pbar:
        urlretrieve(
            url,
            zip_path,
            pbar.hook)
if not isdir(action_dataset_folder_path):
    with tarfile.open(zip_path) as tar:
        tar.extractall()
        tar.close()
print('All done ...!')

Файл загружается как пустой файл с 73,7 КБ!Я не понимал!Вроде все хорошо.

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Вот код с облачного сайта Google: python-код

    from gcloud import storage
    def download_blob(bucket_name, source_blob_name, destination_file_name):
        """Downloads a blob from the bucket."""
        storage_client = storage.Client()
        bucket = storage_client.get_bucket(bucket_name)
        blob = bucket.blob(source_blob_name)

        blob.download_to_filename(destination_file_name)

        print('Blob {} downloaded to {}.'.format(
            source_blob_name,
            destination_file_name))
download_blob("datset","actions", "dataset")
0 голосов
/ 17 мая 2018

Вы можете получить данные из Google Cloud Storage с помощью GET-запроса . В Python вы можете сделать это с помощью библиотеки запросов.

Сначала вам нужно получить код авторизации (вы можете проверить это, используя OAuth 2.0 Playground )

Тогда вы можете использовать что-то вроде этого для извлечения данных (объекта):

import requests

authCode = YOUR_AUTH_CODE
auth = "Bearer " + authCode
myHeaders = {"Authorization": auth}
r = requests.get('https://www.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME', headers=myHeaders)

print r.text
print r.status_code
...