Saya mencoba mengunggah file dari instance Datalab saya di dalam notebook itu sendiri ke Google Storage Bucket saya menggunakan Python API tetapi saya tidak dapat menemukannya. Contoh kode yang disediakan oleh Google dalam dokumentasinya sepertinya tidak berfungsi di Datalab. Saat ini saya menggunakan perintah gsutil tetapi ingin memahami bagaimana melakukan ini dalam menggunakan Python API.

Direktori File (Saya ingin mengunggah file python yang terletak di folder pos pemeriksaan):

!ls -R

.:
checkpoints  README.md  tpot_model.ipynb

./checkpoints:
pipeline_2020.02.29_00-22-17.py  pipeline_2020.02.29_06-33-25.py
pipeline_2020.02.29_00-58-04.py  pipeline_2020.02.29_07-13-35.py
pipeline_2020.02.29_02-00-52.py  pipeline_2020.02.29_08-45-23.py
pipeline_2020.02.29_02-31-57.py  pipeline_2020.02.29_09-16-41.py
pipeline_2020.02.29_03-02-51.py  pipeline_2020.02.29_11-13-00.py
pipeline_2020.02.29_05-01-17.py

Kode saat ini:

import google.datalab.storage as storage
from pathlib import Path

bucket = storage.Bucket('machine_learning_data_bucket')


for file in Path('').rglob('*.py'):
    # API CODE GOES HERE

Solusi Kerja Saat Ini:

!gsutil cp checkpoints/*.py gs://machine_learning_data_bucket
0
Michael Gardner 1 Maret 2020, 01:16

1 menjawab

Jawaban Terbaik

Ini adalah kode yang bekerja untuk saya:

from google.cloud import storage
from pathlib import Path

storage_client = storage.Client()
bucket = storage_client.bucket('bucket')

for file in Path('/home/jupyter/folder').rglob('*.py'):
    blob = bucket.blob(file.name)
    blob.upload_from_filename(str(file))
    print("File {} uploaded to {}.".format(file.name,bucket.name))

Keluaran:

File file1.py uploaded to bucket.
File file2.py uploaded to bucket.
File file3.py uploaded to bucket.

EDIT

Atau Anda dapat menggunakan:

import google.datalab.storage as storage
from pathlib import Path

bucket = storage.Bucket('bucket')

for file in Path('/home/jupyter/folder').rglob('*.py'):
    blob = bucket.object(file.name)
    blob.write_stream(file.read_text(), 'text/plain')
    print("File {} uploaded to {}.".format(file.name,bucket.name))

Keluaran:

File file1.py uploaded to bucket.
File file2.py uploaded to bucket.
File file3.py uploaded to bucket.
1
Community 20 Juni 2020, 09:12