3

我有一個python腳本,獲取已上傳到谷歌雲存儲存儲桶的文件列表,並嘗試以字符串的形式檢索數據。從文件夾中的谷歌雲存儲下載文件

的代碼很簡單:

file = open(base_dir + "/" + path, 'wb') 
data = Blob(path, bucket).download_as_string() 
file.write(data) 

我的問題是,我已經上傳儲存在裏面桶文件夾中的數據,這樣的路徑會是這樣的:

folder/innerfolder/file.jpg 

當谷歌圖書館嘗試下載文件,它以GET請求的形式獲取它,將上述路徑變爲:

https://www.googleapis.com/storage/v1/b/bucket/o/folder%2Finnerfolder%2Ffile.jpg 

有沒有辦法阻止這種情況發生/通過這種方式下載文件?乾杯。

回答

3

是的 - 你可以用python storage client library來做到這一點。

只是pip install --upgrade google-cloud-storage安裝它,然後使用下面的代碼:

# Initialise a client 
storage_client = storage.Client("[Your project name here]") 
# Create a bucket object for our bucket 
bucket = storage_client.get_bucket(bucket_name) 
# Create a blob object from the filepath 
blob = bucket.blob("folder_one/foldertwo/filename.extension") 
# Download the file to a destination 
blob.download_to_filename(destination_file_name) 

您還可以使用.download_as_string()但你它寫入到文件反正直接下載到的文件可能會更容易。

唯一略顯尷尬的事情要注意的是,文件路徑是從鬥名之後,所以並不完全與網絡界面上的路徑排隊的路徑。

相關問題