edit-icon download-icon

オブジェクトのダウンロード

最終更新日: Nov 07, 2017

OSS からオブジェクトをダウンロードするには、次のいずれかの方法を使用できます。

  • ローカルファイルのダウンロード
  • ストリームダウンロード
  • バッファにダウンロード
  • HTTP ダウンロード(ブラウザ経由)

ローカルファイルのダウンロード

‘get’ インターフェースを使用して、オブジェクトをローカルファイルとしてダウンロードできます。

  1. var co = require('co');
  2. var OSS = require('ali-oss');
  3. var client = new OSS({
  4. region: '<Your region>',
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: 'Your bucket name'
  8. });
  9. co(function* () {
  10. var result = yield client.get('object-key', 'local-file');
  11. console.log(result);
  12. }).catch(function (err) {
  13. console.log(err);
  14. });

ストリームダウンロード

オブジェクトをダウンロードするために ‘getStream’ を使用すると、ストリーミング方法でオブジェクトを処理するための ‘Readable Stream’ が返されます。

  1. var co = require('co');
  2. var OSS = require('ali-oss');
  3. var fs = require('fs);
  4. var client = new OSS({
  5. region: '<Your region>',
  6. accessKeyId: '<Your AccessKeyId>',
  7. accessKeySecret: '<Your AccessKeySecret>',
  8. bucket: 'Your bucket name'
  9. });
  10. co(function* () {
  11. var result = yield client.getStream('object-key');
  12. console.log(result);
  13. var writeStream = fs.createWriteStream('local-file');
  14. result.stream.pipe(writeStream);
  15. }).catch(function (err) {
  16. console.log(err);
  17. });

バッファにダウンロード

‘get’ インターフェースを使用して、オブジェクトをバッファにもダウンロードできます。

  1. var co = require('co');
  2. var OSS = require('ali-oss');
  3. var client = new OSS({
  4. region: '<Your region>',
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: 'Your bucket name'
  8. });
  9. co(function* () {
  10. var result = yield client.get('object-key');
  11. console.log(result.content);
  12. }).catch(function (err) {
  13. console.log(err);
  14. });

HTTP ダウンロード

OSS に格納されたオブジェクトは、SDK を使用せずに HTTP 経由で直接ダウンロードできます。HTTP ダウンロードはブラウザとコマンドラインインターフェイス(CLI)ツール( ‘wget’ や ‘curl’ など)をサポートしています。ダウンロードするオブジェクトの URL は、SDK によって生成されます。’signatureUrl’ メソッドを使用して、ダウンロード可能な HTTP アドレスを生成することができます。URL の有効期間は、デフォルトで 30 分です。

  1. var co = require('co');
  2. var OSS = require('ali-oss');
  3. var client = new OSS({
  4. region: '<Your region>',
  5. accessKeyId: '<Your AccessKeyId>',
  6. accessKeySecret: '<Your AccessKeySecret>',
  7. bucket: 'Your bucket name'
  8. });
  9. var url = client.signatureUrl('object-key');
  10. console.log(url);
  11. var url = client.signatureUrl('object-key', {expires: 3600});
  12. console.log(url);
  13. // signed URL for PUT
  14. var url = client.signatureUrl('object-key', {method: 'PUT'});
  15. console.log(url);