ホームページ >バックエンド開発 >Golang >Go SDK でのチャンク化のための GCS アップロード?

Go SDK でのチャンク化のための GCS アップロード?

王林
王林転載
2024-02-12 18:36:081036ブラウズ

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

php エディターの Youzi が、Go SDK でのチャンク化のための GCS アップロードのトピックについて簡単に紹介します。 GCS (Google Cloud Storage) は、Google Cloud Platform が提供するオブジェクト ストレージ サービスで、大量の非構造化データの保存とアクセスに使用できます。 GCS を使用してファイルをアップロードする場合、ファイルが大きい場合は、チャンク アップロード方法を使用できます。これにより、アップロード速度と安定性が向上します。 Go SDK は、マルチパート アップロード機能を簡単に実装するための対応するインターフェイスとメソッドを提供します。このようにして、開発者は大きなファイルのアップロード操作をより柔軟に処理できます。

質問内容

gcs Writer を使用して大きなファイルをアップロードしようとしています:

リーリー

次に、サイズ n のブロックに対して、writer.write(mybuffer) を呼び出します。クラスター上でいくつかのメモリ不足例外が発生しているのですが、これは実際にはファイル全体をメモリにバッファリングしているだけではないかと疑問に思っています。この操作のセマンティクスは何ですか?何か誤解していますか?

回避策

はい、コード内の Write 呼び出しのたびにデータが GCS にフラッシュされます。 Write メソッドは、書き込まれたバイト数、発生したエラー、および基礎となる接続に実際に書き込まれたバイト数を返します。データは各チャンクが書き込まれた後に GCS にフラッシュされるため、クライアントが消費するメモリの量はバッファのサイズに制限される必要があります。インスタンスでは、入力データを 5 MB にチャンクした場合、バッファのサイズは 5 MB になります。チャンクを作成し、ループ内で Write を使用します。

以上がGo SDK でのチャンク化のための GCS アップロード?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。