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

Object Storage Service:ホットリンク保護 (Node.js SDK)

最終更新日:Nov 30, 2025

Node.js SDK を使用して、Referer リクエストヘッダーに基づいて Object Storage Service (OSS) のアクセスルールを設定できます。Referer のホワイトリスト、ブラックリストを設定したり、空の Referer ヘッダーを許可するかどうかを指定したりできます。これらのルールにより、指定された Referer からの OSS ファイルへのアクセスがブロックされます。これにより、他の Web サイトからのホットリンクを防ぎ、不要なトラフィックコストを回避できます。

注意事項

  • ホットリンク保護を設定する前に、この機能についてよく理解しておく必要があります。詳細については、「ホットリンク保護」をご参照ください。

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスするには、内部エンドポイントを使用します。サポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化 (Node.js SDK)」をご参照ください。

  • ホットリンク保護ルールを設定または削除するには、oss:PutBucketReferer 権限が必要です。ホットリンク保護ルールを取得するには、oss:GetBucketReferer 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

ホットリンク保護の設定

次のコードは、ホットリンク保護ルールを設定する方法を示しています。

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: 'examplebucket'
});

async function putBucketReferer () {
  try {
  const result = await client.putBucketReferer(client.options.bucket, true, [
  'http://www.aliyun.com',
  'https://www.aliyun.com'
  ]);
  console.log(result);
  } catch (e) {
    console.log(e);
  }
 }

putBucketReferer();

ホットリンク保護設定の取得

次のコードは、ホットリンク保護設定を取得する方法を示しています。

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,
  // yourbucketname をバケット名に置き換えます。
  bucket: 'yourbucketname'
});

async function getBucketReferer () {
  try {
    const result = await client.getBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

getBucketReferer();

ホットリンク保護ルールの削除

次のコードは、ホットリンク保護ルールを削除する方法を示しています。

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,
  // yourbucketname をバケット名に設定します。
  bucket: 'yourbucketname'
});

async function deleteBucketReferer () {
  try {
    const result = await client.deleteBucketReferer('bucket-name');
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

deleteBucketReferer();

関連ドキュメント

  • ホットリンク保護を設定するために使用される完全なサンプルコードについては、GitHub をご参照ください。

  • ホットリンク保護ルールを設定するために使用される API 操作の詳細については、「PutBucketReferer」をご参照ください。

  • ホットリンク保護設定を取得するために使用される API 操作の詳細については、「GetBucketReferer」をご参照ください。