アップロード API (V1)

Current version: 4.0

アップロード API を使用すると、Sitecore Content Hub™ Web UI 以外のクライアントからアップロードできます。たとえば、Sitecore Connect for Creative Cloud™ を使用できます。

アップロード API は、次のエンドポイントを公開します。

  • api/v1.0/upload: アップロード URL を要求します。
  • api/v1.0/upload/assets: すでにアップロードされているファイルから新しいアセットをアップロード (作成) します。
  • api/v1.0/upload/assets/{id}: 既存のアセットのマスター ファイルをアップロードします。
  • api/v1.0/upload/assets/{id}/alternative: 既存のアセットの代替ファイルをアップロードします。

完全なアップロード フローは、次の 3 つのステップで構成されます。

  1. アップロード URL の要求
  2. 受信した URL へのファイルのアップロード
  3. 新しいアセットのアップロード/作成、またはマスター ファイル/代替ファイルによる既存のアセットの更新

アップロード URL の要求

アップロード URL を取得するには、POST 要求をエンドポイント api/v1.0/upload に送信します。

要求フォームの本文には、次のフィールドが含まれている必要があります。

  • fileName - アップロードするファイルの名前。
  • fileSize -アップロードするファイルのサイズ。

成功した応答では、アップロード URL を含むロケーション ヘッダーと、次のように構造化された情報を含む JSON 本文が返されます。

RequestResponse
{
   "fileIdentifier": "azr123grz3",
   "storageIdentifier": "weu"
}
  • fileIdentifier は、システム内のファイルの識別子を表します。
  • storageIdentifier は、ファイルが保存されている場所を表します。 これは JSON では null か欠落している可能性があります。

アップロード URL は常に Azure Storage Blob を指します。

分散アップロードの場合、ポータル アプリケーションの API エンドポイント api/v1.0/upload がトラフィック マネージャーにリダイレクトし、最も近い衛星がアップロード URL を作成して返します。

受信した URL へのファイルのアップロード

受信したアップロード URL は Azure Storage Blob へのパブリックURL です。つまり、Azure Blob サービスの REST API を使用してファイルをアップロードできます。

アップロードを実行するには、次の必須ヘッダーを使用して、PUT 要求をアップロード URL に送信します。

  • x-ms-blob-type: Azureは、値が BlockBlob であると想定します。
  • x-ms-blob-content-type: ファイルのコンテンツ タイプ
  • x-ms-meta-Filename: ファイルの名前

Azure Blob Storage への大きなファイルのアップロード

ファイルが 200 MB より大きい場合は、ファイルを分割し、クエリ文字列パラメーター comp=block&blockid={blockid} を使用してアップロード URL を拡張することにより、各ブロックを個別に Azure に送信します。

  • blockid は、ブロックを識別するための有効な Base64 文字列値です。
  • 特定の blob について、指定された blockid 値の長さは、各ブロックで同じサイズである必要があります。

すべてのブロックが送信されたら、アップロード URL に別の要求を送信して、アップロードが完了したことと、すべてのブロックをまとめる必要があることを通知します。

  • クエリ文字列パラメーター comp=blocklist を使用してアップロード URL を拡張します。
  • 要求の本文は XML 形式でなければなりません。また、blockid を使用してブロックを読み込む順序を指定する必要があります。

次のコード スニペットは、blockid を使用してブロックを読み込む方法を示しています。

Do you have some feedback for us?

If you have suggestions for improving this article,