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中文網其他相關文章!