2015-01-21 31 views
0

我已經通過GCS客戶端庫的最新docs並通過example。示例代碼顯示瞭如何在GCS上即時創建文件/流。Python使用GCS新客戶端庫 - 上傳對象/'目錄'

我該如何resumably(允許恢復如果錯誤)將現有文件和目錄從本地目錄上傳到GCS存儲桶?使用新的客戶端庫。 IE,這(不能發佈超過2個鏈接,所以h77ps://cloud.google.com/storage/docs/gspythonlibrary#uploading-objects)已被棄用。

感謝所有

P.S 我不需要GAE的功能 - 這是要坐預置並上傳到GCS

回答

1

Python的API客戶端可以進行斷點續傳。例子見​​。最重要的一點是:

媒體= MediaFileUpload( 'pig.png',MIME類型= '圖像/ PNG',可恢復= TRUE)

不幸的是,庫不公開上傳ID本身,所以當如果發生錯誤,上傳呼叫將恢復上傳,您的應用程序無法明確恢復上傳。例如,如果您的應用程序已終止,並且需要在重新啓動時恢復上傳,則該庫不會對您有所幫助。如果您需要這種重試級別,則必須使用其他工具或直接調用httplib。

Boto庫完成這個有點不同,並支持保持一個持久化的跟蹤令牌,以防您的應用程序崩潰,需要恢復。這裏有一個簡單的例子,從Chromium's system tests被盜:

# Set up other stuff normally 
res_upload_handler = ResumableUploadHandler(
    tracker_file_name=tracker_file_name, num_retries=3 
dst_key.set_contents_from_file(src_file, res_upload_handler=res_upload_handler) 

由於您希望在新的辣味,訪問谷歌雲存儲的最新,最偉大的Python庫可能是APITools,這也爲恢復,斷點續傳和也有examples

+0

我更感興趣的是如何使用最新的客戶端進行上傳,在我的問題中提到。不是已棄用的功能。 您提到的文檔陳述'2012年7月17日最後更新',這是一段很長的時間。 即使'resumable'在這裏不是一個好選擇,只要使用[新客戶端](https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/getstarted)的工作示例就足夠了。 – PyGAE 2015-01-21 18:51:01

+0

我添加了一個Boto示例,並且還引用了一個更新的Python客戶端。 – 2015-01-21 20:45:17

+0

謝謝布蘭登。 不幸的是我還不能滿意,但我會晚點回來。 這裏的問題不是關於「最新」或「最熱門」的工具,相反,它是關於一個非棄用的,** Google提供的** [客戶端庫](https://cloud.google.com /應用服務引擎/文檔/蟒/ googlecloudstorageclient/getstarted)。在大型企業工作時,不能依賴文檔中的工具no。 (是的,我知道克雷格雪鐵龍是一個Google員工,但不過)。 這就是我正在尋找的一個工作上傳示例,使用[this](https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/getstarted) – PyGAE 2015-01-22 10:18:54