edit-icon download-icon

オブジェクトのアップロード

最終更新日: Apr 17, 2018

次のいずれかの方法を使用して、ファイルを OSS にアップロードできます。

  • ローカルファイルをアップロードする
  • バッファにコンテンツをアップロードする
  • マルチパートアップロード

ローカルファイルをアップロードする

マルチパートアップロードを参照

バッファにコンテンツをアップロードする

putインターフェースを使用して、バッファ内のオブジェクトコンテンツを OSS にアップロードすることもできます:

  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.put('object-key', new Buffer('hello world'));
  11. console.log(result);
  12. }).catch(function (err) {
  13. console.log(err);
  14. });

マルチパートアップロード

アップロードするファイルが大きい場合、マルチパートアップロードのために multipartUpload インターフェースを使用することができます。 マルチパートアップロードとは、大きなリクエストを複数の小さなリクエストに分割して実行することです。その結果、要求の一部が失敗した場合、ファイル全体を再度アップロードする必要はなく、失敗した部分をアップロードするだけです。一般的に、100 MB の場合、上記のマルチパートアップロード方法をお勧めします。関連するパラメータ:

  • name {String}: オブジェクト名
  • file {String|File}: ファイルパスまたは HTML5 Web ファイル
  • [options] {Object}: 追加パラメータ
    • [checkpoint] {Object}: 再開可能なアップロードで使用されるエンドポイントチェックポイント。このパラメータを設定すると、エンドポイントからアップロードが開始されます。設定されていない場合は、アップロードが再開されます。
    • [partSize] {Number}: 部品サイズ
      • [progress] {Function}: ジェネレータ関数、または、thunk。コールバック関数には、次の 3 つのパラメータがあります。
      • (percentage {Number}: アップロードの進捗状況(0〜1 の小数点以下の桁数)
      • checkpoint {Object}: エンドポイントチェックポイント
      • res {Object}): 1 つのパートが正常にアップロードされた後に返されるレスポンス
    • [meta] {Object}: プレフィックス x-oss-meta- を持つユーザが定義したヘッダメタ情報
    • [headers] {Object}: 余分なヘッダー。詳細については、RFC 2616を参照してください。
      • ‘Cache-Control’: HTTP 要求と応答でコマンドを指定することによってキャッシュメカニズムを実装するために使用される一般的なヘッダー。例: Cache-Control:public、no-cache
      • ‘Content-Disposition’: 内部リファレンス(ウェブページまたはページの一部)またはローカルでダウンロードされて保存された添付ファイルである、レスポンスのデリゲーションフォームを示すために使用されます。例: Content-Disposition:somename
      • ‘Content-Encoding’: 特定のメディアタイプのデータを圧縮するために使用されます。例: Content-Encoding:gzip
      • ‘Expires’: 有効期限。例: Expires:3600000
      • : 一部のヘッダーはdisabled in browserになっています。
  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.multipartUpload('object-key', 'local-file', {
  11. progress: function* (p) {
  12. console.log('Progress: ' + p);
  13. },
  14. meta: {
  15. year: 2017,
  16. people: 'test'
  17. },
  18. mime: 'image/jpeg'
  19. });
  20. console.log(result);
  21. var head = yield client.head('object-key');
  22. console.log(head);
  23. }).catch(function (err) {
  24. console.log(err);
  25. });

先行する progress パラメータは、アップロードの進捗状況を取得するために使用される進行状況コールバック関数です。進捗パラメータは、ジェネレータ関数( function *)、または ‘thunk’:

  1. var progress = function (p) {
  2. return function (done) {
  3. console.log(p);
  4. done();
  5. };
  6. };

前の meta パラメタはユーザ定義のメタデータです。ヘッド API を使用してオブジェクトのメタ値を取得できますが、次の図に示すように、コンソールのクロスリージョン設定の公開ヘッダーでメタヘッダーを適切に設定する必要があります。


meta-setting

成功したリクエストの返された結果:


oss-returned-results