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

Object Storage Service:シンプルアップロード (Browser.js SDK)

最終更新日:Nov 30, 2025

このトピックでは、PutObject 操作を呼び出してファイル、BLOB データ、またはバッファーを Object Storage Service (OSS) にアップロードする方法について説明します。シンプルアップロードでは進捗状況関数は使用できません。

前提条件

OSS SDK for Browser.js がインストールされていること。 詳細については、「インストール」をご参照ください。

注意事項

  • Webpack や Browserify などのパッケージングツールを使用する場合は、npm install ali-oss コマンドを実行して OSS SDK for Browser.js をインストールします。

  • ブラウザから OSS バケットにアクセスする際に、そのバケットに CORS ルールが設定されていない場合、ブラウザはリクエストを拒否します。そのため、ブラウザからバケットにアクセスする場合は、バケットに CORS ルールを設定する必要があります。 詳細については、「インストール」をご参照ください。

  • ほとんどの場合、OSS SDK for Browser.js はブラウザで使用されます。 AccessKey ペアの漏洩を防ぐため、Security Token Service (STS) から取得した一時的なアクセス認証情報を使用して OSS にアクセスすることを推奨します。

    一時的なアクセス認証情報は、AccessKey ペアとセキュリティトークンで構成されます。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 一時的なアクセス認証情報の取得方法の詳細については、「STS を使用した一時的なアクセス権限付与」をご参照ください。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

定義

PutObject

oss:PutObject

オブジェクトをアップロードします。

oss:PutObjectTagging

オブジェクトのアップロード時に、x-oss-tagging を通じてオブジェクトタグを指定する場合、この権限が必要です。

kms:GenerateDataKey

オブジェクトのアップロード時に、オブジェクトのメタデータに X-Oss-Server-Side-Encryption: KMS が含まれる場合、これら 2 つの権限が必要です。

kms:Decrypt

サンプルコード

説明

BLOB (Binary Large Object) は大きなバイナリオブジェクトです。

以下のコードは、examplebucket バケットの exampledir ディレクトリにある exampleobject.txt という名前のオブジェクトにデータをアップロードする例です。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <input id="file" type="file" />
    <button id="upload">オブジェクトのアップロード</button>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
    <script>
      const client = new OSS({
        // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを oss-cn-hangzhou に設定します。 
        region: "yourRegion",
        authorizationV4: true,
        // STS から取得した一時的な AccessKey ペアを指定します。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 
        accessKeyId: "yourAccessKeyId",
        accessKeySecret: "yourAccessKeySecret",
        // STS から取得したセキュリティトークンを指定します。 
        stsToken: "yourSecurityToken",
        // バケット名を指定します。 
        bucket: "examplebucket",
      });

      // ドロップダウンリストからローカルファイルを選択します。 例: <input type="file" id="file" />。 
      let data;
      // Blob データを作成して指定します。 
      //const data = new Blob(['Hello OSS']);
      // OSS バッファーを作成し、OSS バッファーのコンテンツを指定します。 
      //const data = new OSS.Buffer(['Hello OSS']);

      const upload = document.getElementById("upload");

      async function putObject(data) {
        try {
          // オブジェクトの完全なパスを指定します。 完全なパスにバケット名を含めないでください。 
          // オブジェクト名またはオブジェクトの完全なパスを指定して、現在のバケットまたはバケット内の特定のディレクトリにデータをアップロードします。 たとえば、オブジェクト名を exampleobject.txt に設定するか、オブジェクトのパスを exampledir/exampleobject.txt に設定します。 
          // データはファイル、Blob データ、または OSS バッファーに設定できます。 
          const options = {
            meta: { temp: "demo" },
            mime: "json",
            headers: { "Content-Type": "text/plain" },
          };
          const result = await client.put("examplefile.txt", data, options);
          console.log(result);
        } catch (e) {
          console.log(e);
        }
      }

      upload.addEventListener("click", () => {
        const data = file.files[0];
        putObject(data);
      });
    </script>
  </body>
</html>

よくある質問

シンプルアップロードでアップロードの進捗状況を取得できますか?

いいえ、できません。 アップロードの進捗状況は、マルチパートアップロード (Browser.js SDK)再開可能なアップロード (Browser.js SDK) でのみ利用可能です。

関連ドキュメント

  • シンプルアップロードの完全なサンプルコードについては、「GitHub の例」をご参照ください。

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