首頁  >  文章  >  後端開發  >  GCS 上傳用於 Go SDK 中的分塊?

GCS 上傳用於 Go SDK 中的分塊?

王林
王林轉載
2024-02-12 18:36:081006瀏覽

GCS 上传用于 Go SDK 中的分块?

php小編柚子就GCS 上傳用於 Go SDK 中的分塊這個主題為大家簡單介紹一下。 GCS(Google Cloud Storage)是Google雲端平台提供的物件儲存服務,可用於儲存和存取大量的非結構化資料。在使用 GCS 進行檔案上傳時,如果檔案較大,可以使用分塊上傳的方式,這樣可以提高上傳的速度和穩定性。 Go SDK 提供了對應的介面和方法,可以輕鬆實現分塊上傳的功能。透過這種方式,開發者可以更靈活地處理大檔案的上傳操作。

問題內容

我正在嘗試使用 gcs writer 上傳大檔案:

bucketHandle := m.Client.Bucket(bucket)
    objectHandle := bucketHandle.Object(path)
    writer := objectHandle.NewWriter(context.Background())

然後對於大小為 n 的區塊,我呼叫 writer.write(mybuffer)。我在叢集上看到一些記憶體不足的異常,並想知道這是否實際上只是將整個檔案緩衝到記憶體中。這個操作的語意是什麼,我是否誤解了什麼?

解決方法

是的,在程式碼中的每次 Write 呼叫之後,資料都會刷新到 GCS。 Write 方法傳回寫入的位元組數、遇到的任何錯誤以及實際寫入底層連接的位元組數。每個區塊寫入後,資料都會刷新到GCS,因此客戶端消耗的記憶體量應限制在緩衝區的大小內,在您的實例中,如果您將輸入資料分割為5 MB,則緩衝區的大小為5 MB塊並在循環中使用Write。

以上是GCS 上傳用於 Go SDK 中的分塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除