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

Object Storage Service:オリジン間リソース共有 (Node.js SDK)

最終更新日:Nov 30, 2025

オリジン間リソース共有 (CORS) により、Web アプリケーションは異なるドメインからリソースにアクセスできます。 Object Storage Service (OSS) は、クロスドメインアクセスの権限を制御するための CORS の API 操作を提供します。

CORS ルールの設定

次のコードは、バケットの CORS ルールを設定する方法を示しています。

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

const client = new OSS({
  // yourRegion をバケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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: 'yourBucket'
});

const rules = [{
        // クロスオリジンリクエストで許可されるオリジンを指定します。 ワイルドカード文字アスタリスク (*) がサポートされており、すべてのソースドメインを許可します。
        allowedOrigin: 'http://example.com',
        // クロスオリジンリクエストで許可されるメソッドを指定します。 サポートされているメソッドは、GET、PUT、DELETE、POST、HEAD です。
        allowedMethod: 'GET',
        // クロスオリジンリクエストで許可されるレスポンスヘッダーを指定します。 特定の要件がない限り、これをワイルドカード文字アスタリスク (*) に設定します。
        allowedHeader: '*',
        // JavaScript の XMLHttpRequest オブジェクトなど、アプリケーションからユーザーがアクセスできるレスポンスヘッダーを指定します。 ワイルドカード文字アスタリスク (*) は使用できません。
        exposeHeader: 'Content-Length',
        // 特定のリソースに対するプリフライト (OPTIONS) リクエストの結果のキャッシュ期間を秒単位で指定します。
        maxAgeSeconds: '30'
  },
];
// 最大 10 個の CORS ルールを設定します。 既存のルールと同じルールを設定した場合、既存のルールは上書きされます。
client.putBucketCORS("yourBucket", rules).then((r) => {
  console.log(r);
});           

CORS ルールの取得

次のコードは、バケットの CORS ルールを取得する方法を示しています。

const OSS = require("ali-oss");
const assert = require("assert");

const client = new OSS({
  // yourRegion をバケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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: "yourBucket",
});

// バケット名を指定します。
client.getBucketCORS("yourBucket").then((r) => {
  assert.equal(r.res.status, 200);
  assert.deepEqual(r.rules, [
    {
      allowedOrigin: "http://example.com",
      allowedMethod: "GET",
      allowedHeader: "*",
      exposeHeader: "Content-Length",
      maxAgeSeconds: "30",
    },
  ]);
});

CORS ルールの削除

次のコードは、バケットのすべての CORS ルールを削除する方法を示しています。

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

const client = new OSS({
  // yourRegion をバケットが配置されているリージョンに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを 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: "yourBucket",
});

// バケット名を指定します。
client.deleteBucketCORS('yourBucket').then((res) => {
  console.log(res);
}).catch(e => {
  console.log(e)
})

関連ドキュメント

  • オリジン間リソース共有の完全なサンプルコードについては、GitHub の例をご参照ください。

  • CORS ルールを設定する API 操作の詳細については、「PutBucketCors」をご参照ください。

  • CORS ルールを取得する API 操作の詳細については、「GetBucketCors」をご参照ください。

  • CORS ルールを削除する API 操作の詳細については、「DeleteBucketCors」をご参照ください。