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

Object Storage Service:ファイルのアップロード (Node.js SDK)

最終更新日:Nov 30, 2025

このトピックでは、バージョン管理が有効なバケットにファイル (オブジェクト) をアップロードする方法について説明します。

シンプルなアップロード

バージョン管理が有効なバケットでは、Object Storage Service (OSS) は新しく追加されたオブジェクトごとに一意のバージョン ID を自動的に生成し、その ID を `x-oss-version-id` 応答ヘッダーで返します。バージョン管理が一時停止されているバケットでは、新しく追加されたオブジェクトのバージョン ID は "null" になります。同じ名前のオブジェクトをアップロードすると、新しいオブジェクトが以前のオブジェクトを上書きします。OSS は、オブジェクトの 1 つのバージョンのみが "null" のバージョン ID を持つことを保証します。

次のコードは、シンプルなアップロードを実行する方法を示しています。

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

const client = new OSS({
  // バケットが所在するリージョンを設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // ご利用のバケット名を設定します。
  bucket: 'yourbucketname'
});

async function put() {
  const result = await client.put('fileName', path.normalize('D:\\localpath\\examplefile.txt'));
  console.log(result.res.headers['x-oss-version-id']); // アップロードされたオブジェクトのバージョン ID を表示します。
}
put();

追加アップロード

バージョン管理が有効なバケットでは、追加可能なオブジェクトの現在のバージョンに対してのみ追加操作 (AppendObject) を実行できます。追加可能なオブジェクトの以前のバージョンに対して AppendObject 操作を実行することはできません。

説明
  • 追加可能なオブジェクトの現在のバージョンに対して AppendObject 操作を実行しても、OSS はそのオブジェクトの以前のバージョンを作成しません。

  • 追加可能なオブジェクトの現在のバージョンに対して PutObject または DeleteObject 操作を実行すると、OSS は現在のバージョンを以前のバージョンとして保存します。このオブジェクトにデータを追加することはできなくなります。

  • 通常のオブジェクトや削除マーカーなど、追加不可能なオブジェクトの現在のバージョンに対して AppendObject 操作を実行することはできません。

次のコードは、追加アップロードを実行する方法を示しています。

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

const client = new OSS({
  // バケットが所在するリージョンを設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // ご利用のバケット名を設定します。
  bucket: 'yourbucketname'
});

async function append() {
  await client.append('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
    partSize: 100 * 1024
  });
}
append();

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

バージョン管理が有効なバケットでは、`multipartUpload` メソッドを呼び出してファイルをパートに分けてアップロードできます。マルチパートアップロードが完了すると、OSS はファイル全体に対して一意のバージョン ID を生成し、その ID を `x-oss-version-id` 応答ヘッダーで返します。

次のコードは、マルチパートアップロードを実行する方法を示しています。

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

const client = new OSS({
  // バケットが所在するリージョンを設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // ご利用のバケット名を設定します。
  bucket: 'yourbucketname'
});

async function multipartUpload() {
  const result = await client.multipartUpload('filename', path.normalize('D:\\localpath\\examplefile.txt'), {
    partSize: 100 * 1024
  });
  // アップロードされたオブジェクトのバージョン ID を表示します。
  console.log(result.res.headers['x-oss-version-id']); 
}
multipartUpload();

関連ドキュメント

  • シンプルなアップロードの詳細については、「PutObject」をご参照ください。

  • 追加アップロードの詳細については、「AppendObject」をご参照ください。

  • マルチパートアップロードの詳細については、「CompleteMultipartUpload」をご参照ください。