Der folgende Code wird in Jupyter Notebook geschrieben und verwendet.
Es wird davon ausgegangen, dass die Umgebung für GCP und GCS erstellt und festgelegt wurde.
Läuft zuerst.py
import os
import pandas as pd
from io import BytesIO
from pathlib import Path
from google.cloud import storage
from google.oauth2 import service_account
def get_project_credentials():
credentials = service_account.Credentials.from_service_account_file(
"xx/xx/xx/xx.json",#Der Pfad, in dem sich die JSON-Datei für den Dienstkontoschlüssel befindet
scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
return credentials
def get_storage_client(credentials):
storage_client = storage.Client(
credentials = credentials,
project = credentials.project_id,
)
return storage_client
created_bucket.py
created_bucket_name = 'tmp_bucket_qitaqita'
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.create_bucket(created_bucket_name)
Beachten Sie, dass Bucket-Namen weltweit eindeutig sein müssen. (Zuerst habe ich versucht, es mit dem Namen "tmp_bucket" zu erstellen, aber ich habe eine Fehlermeldung erhalten, weil es bereits existiert.)
trans_to_bucket.py
bucket_name = 'tmp_bucket_qitaqita'
file_name = 'send_txt.txt' #Name des zu sendenden Objekts
destination_blob_name = 'sended_txt.txt' #Name am Zielort
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_filename(file_name)
Wenn Sie das Ziel wie folgt benennen, wird ein Verzeichnis mit dem Namen make_dir erstellt und die Dateien werden dorthin übertragen.
destination_blob_name = 'make_dir/sended_txt_2.txt'
del_bucket_file.py
bucket_name = 'tmp_bucket_qitaqita'
file_name = 'sended_txt.txt'#Der Name der Datei, die Sie im Bucket löschen möchten
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(file_name)
blob.delete()
bucket_name.py
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
blobs = storage_client.list_buckets()
for blob in blobs:
print(blob.name)
filename_in_bucket.py
bucket_name = 'tmp_bucket_qitaqita'
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
blobs = bucket.list_blobs()
for blob in blobs:
print(blob.name)
del_bucket.py
bucket_name = 'tmp_bucket_qitaqita'#Bucket-Name, den Sie löschen möchten
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
bucket.delete()
Laden speichern.py
bucket_name = 'tmp_bucket_qitaqita'
file_name = 'sended_txt.txt'#Dateiname in dem Bucket, den Sie lesen möchten
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
blob = storage.Blob(file_name, bucket)
content = blob.download_as_string()
with open('sended_txt.txt', mode='wb') as f:
f.write(content)
CSV-Datei lesen.py
bucket_name = 'tmp_bucket_qitaqita'
file_name = 'dataset_data.csv'
credentials = get_project_credentials()
storage_client = get_storage_client(credentials)
bucket = storage_client.get_bucket(bucket_name)
blob = storage.Blob(file_name, bucket)
content = blob.download_as_string()
df_csv = pd.read_csv(BytesIO(content))
Nebenbei: Dies ist der erste Beitrag zu Qiita. Ich hoffe, es hilft.
Recommended Posts