すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:ストリーミングダウンロード

最終更新日:Dec 18, 2023

ストリーミングダウンロードを使用すると、オブジェクトをストリーム単位でダウンロードできます。 大きなオブジェクトをダウンロードしたい場合、またはダウンロードの完了に長時間を要する場合は、ストリーミングダウンロードを実行してオブジェクトを増分単位でダウンロードできます。

サンプルコード

次のサンプルコードは、ストリーミングダウンロードを実行して、exampleobject.txtという名前のオブジェクトをexamplebucketという名前のバケットからローカルディスクのD:\localpathパスにダウンロードする方法の例を示しています。

説明

getStreamを使用してオブジェクトをダウンロードすると、Readable Streamが返され、オブジェクトのコンテンツをストリーミングするために使用されます。

const OSS = require('ali-OSS ');
const fs = require('fs');

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。 
  リージョン: 'yourRegion' 、
  // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID、
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
  // バケットの名前を指定します。 
  bucket: 'examplebucket' 、});

async関数getStream () {
  try {
    // オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 
    const result = await client.getStream('exampleobject.txt ');
    console.log (結果);
    // ローカルファイルのフルパスを指定します。 同じ名前のファイルが既に存在する場合、ダウンロードされたオブジェクトはファイルを上書きします。 それ以外の場合、ダウンロードされたオブジェクトはパスに保存されます。 
    // ダウンロードしたオブジェクトのパスを指定しない場合、ダウンロードしたオブジェクトはサンプルプログラムが属するプロジェクトのパスに保存されます。 
    const writeStream = fs.createWriteStream('D :\\ localpath\\examplefile.txt '); 
    result.stream.pipe(writeStream);
  } catch (e) {
    console.log(e);
  }
}

getStream() 

参考資料

  • ストリーミングダウンロードの実行に使用される完全なサンプルコードについては、『GitHub』をご参照ください。

  • ストリーミングダウンロードを実行するために呼び出すことができるAPI操作の詳細については、「GetObject」をご参照ください。