1. Cloud development

アップロード

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Upload API(V2)では、Sitecore Content HubのウェブUI以外のクライアントからもコンテンツをアップロードできます。

アップロードAPIの最新バージョンのOpenAPI定義にアクセスするAPI

!重要アップロードAPIは資産の大量アップロードを目的としていません。大量の並列アップロードはパフォーマンスに影響を与える可能性があります。Sitecore Content Hubの最適なパフォーマンスを確保するために、パフォーマンス のベストプラクティスを確認してください。

Upload APIは以下のエンドポイントを公開します:

  • api/v2.0/upload - アップロードURLを要求する。
  • api/v2.0/upload/process - リクエストを実行します。
  • api/v2.0/upload/finalize - アップロードを完了します。

!注10MBを超えるファイルをアップロードするには、「 大きなファイルのアップロード」をご覧ください。アップロードURLの利用可能期間を変更するには、「 アップロードURLの寿命を変更する」をご覧ください。

アップロード設定

アップロード設定は 、管理者 または スーパーユーザーが 定義したコンテキストで、ある種類のアップロードが許可される場合を指します。アップロード設定は、どのファイル拡張子が許可されるか、最大ファイルサイズ、どのリポジトリでアセットを作成すべきか、そしてどのステータスで作成すべきかなどをシステムに伝えます。

!注 最大許容ファイルサイズ パラメータは、アップロード可能なファイルサイズを制限し、Azureの最大ブロブ制限は4.7TBです。

必要なパラメータはアップロード設定自体によって異なります。例えば、ロゴをアップロードしたい場合、アップロードロゴをどのテーマにリンクすべきかを示すパラメータ「 theme 」を含める必要があります。

支援された行動

ファイルに対して実行可能なサポートされたアクションは以下の通りです:

戦闘

概要

NewAsset

新しいアセットを作成し、アップロードしたファイルを新たに作成したアセットのメインファイルとして設定します。

NewMainFile

アップロード済みのファイルで既存アセットのメインファイルを変更すること;どのアセットを更新すべきかを指定するために AssetId アクションパラメータが必要です。

NewAlternativeFile

アップロード済みファイルで既存のアセットの代替ファイルを変更する;どのアセットを更新すべきかを指定するために AssetId アクションパラメータが必要。

Import

アップロードしたファイルをインポートとみなし、インポートジョブを実行します。

既存の構成は4種類あります。

AssetUploadConfiguration

このサンプルペイロードはアセットをアップロードします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "NewAsset" }, "upload_configuration": { "name": "upload_configuration_name" } }

依頼例:

{ "file_name": "asset.jpg", "file_size": 12345, "action": { "name": "NewAsset" }, "upload_configuration": { "name": "AssetUploadConfiguration" } }

このサンプルペイロードは新しいバージョンのアセットをアップロードします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "NewMainFile", "parameters": { "AssetId": "{the asset id}" } }, "upload_configuration": { "name": "upload_configuration_name" } }

依頼例:

{ "file_name": "asset.jpg", "file_size": 12345, "action": { "name": "NewMainFile", "parameters": { "AssetId": "40588" } }, "upload_configuration": { "name": "AssetUploadConfiguration" } }

このサンプルペイロードは、アセットの代替サムネイルをアップロードします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "NewAlternativeFile", "parameters": { "AssetId": "{the asset id}" } }, "upload_configuration": { "name": "upload_configuration_name" } }

依頼例:

{ "file_name": "asset.jpg", "file_size": 12345, "action": { "name": "NewAlternativeFile", "parameters": { "AssetId": "40588" } }, "upload_configuration": { "name": "AssetUploadConfiguration" } }

ImportPackageConfiguration

このサンプルペイロードはパッケージをインポートします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "Import", "parameters": { "Type": "Package" } }, "upload_configuration": { "name": "ImportPackageConfiguration" } }

依頼例:

{ "file_name": "package.zip", "file_size": 12345, "action": { "name": "Import", "parameters": { "Type": "Package" } }, "upload_configuration": { "name": "ImportPackageConfiguration" } }

ImportLocalizationsConfiguration

このサンプルペイロードはローカリゼーションファイルをインポートします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "Import", "parameters": { "Type": "Localization" } }, "upload_configuration": { "name": "ImportLocalizationsConfiguration" } }

依頼例:

{ "file_name": "excel.xlsx", "file_size": 12345, "action": { "name": "Import", "parameters": { "Type": "Localization" } }, "upload_configuration": { "name": "ImportLocalizationsConfiguration" } }

ImportDataConfiguration

このサンプルペイロードはExcelファイルからデータをインポートします。

{ "file_name": "", "file_size": <FILE_SIZE>, "action": { "name": "Import", "parameters": { "Type": "Data" } }, "upload_configuration": { "name": "ImportDataConfiguration" } }

依頼例:

{ "file_name": "excel.xlsx", "file_size": 12345, "action": { "name": "Import", "parameters": { "Type": "Data" } }, "upload_configuration": { "name": "ImportDataConfiguration" } }

アップロードプロセス

アップロードプロセスは3つのステップから成り立っています。

  1. アップロードをリクエストしてください
  2. アップロードを実行してください
  3. アップロードを最終決定してください

アップロードをリクエストしてください

アップロードURLを取得するには、以下のパラメータでエンドポイントapi/v2.0/uploadにPOSTリクエストを送信します。

  • file_name - アップロードするファイル 名 。
  • file_size - アップロードするファイル のサイズ 。
  • upload_configuration - アップロード設定。
  • action - ファイルに対して実行するアクション。

{ "file_name":"", "file_size":"<FILE_SIZE>", "upload_configuration":{ "name":"<UPLOAD_CONFIGURATIION_NAME>", "parameters":{ ... } }, "action":{ "name":"<ACTION_NAME>", "parameters":{ ... } } }

成功した応答はLocationヘッダーのアップロードURLを返し、これは アップロードの実行 ステップで使用されます。このアップロードURLにはキー、名前、有効期限、署名が記載されます(以下の例に似ています: /api/v2.0/upload/process?key=local-64215f47c&name=Upload_c3de2f26-8b22.jpg&expires=2020-11-20T17:00

.1850293+00
&signature=bQybo8zZb-Q)。

デフォルトではアップロードURLは5分間有効です。ただし、希望するM.UploadConfigurationエンティティのConfigurationSettingsプロパティにupload_url_lifetime_in_minutesを加えることで、最大1440分(24時間)まで時間を延長できます。アップロードリクエストに関連するすべてのチャンクのアップロードは、リンクが失効する前に完了しなければなりません。

応答は以下の情報を含むJSONボディも返します。

  • upload_identifier - アップロードジョブの 識別子 。
  • file_identifier - システム内のファイルの 識別子 。

{ "upload_identifier": "<UPLOAD_ID>", "file_identifier": "<FILE_ID>" }

アップロードを実行してください

アップロードをリクエストするステップのLocationヘッダーURLを使い、アップロード用のファイルをform-dataとして添付したPOSTリクエストを作成します。

以下の例はファイルのアップロードを示しています:

curl https:///api/v2.0/upload/process?key=local-64215f47c&name=Upload_c3de2f26-8b22.jpg&expires=2020-11-20T17:`00

`.1850293+`00
`&signature=bQybo8zZb-Q \ -H "Authorization: <BEARER_TOKEN>" \ -H "Content-Type: multipart/form-data" \ -F "[email protected]"

アップロードを最終決定してください

アップロードを最終決定するには、Request a uploadステップで受信したJSON応答本体をapi/v2.0/upload/finalizeエンドポイントにPOSTリクエストを送信します。

  • upload_identifier - アップロードジョブの 識別子 。
  • file_identifier - システム内のファイルの 識別子 。

{ "upload_identifier": "<UPLOAD_ID>", "file_identifier": "<FILE_ID>" }

成功した対応の構造は以下の通りです。

{ "success": , "message": , "asset_id": <ASSET_ID>, "asset_identifier": }

回答には以下の内容が含まれています。

  • 成功 - アップロードの状況
  • メッセージ - 任意のエラーまたは応答メッセージ
  • asset_id - 資産を識別する数値
  • asset_identifier - 資産の大文字を区別する文字列識別子

以下のPowershell 7の例は、アップロードスクリプトの設定方法を示しています:

$authToken = "Bearer xyz" $hostName = "https://url.sitecorecontenthub.cloud"

$fileName = "test.jpg" $filePath = "test.jpg" $fileSize = 2492578

create request

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

$createAssetBody = @{ file_name = $fileName file_size = $fileSize upload_configuration = @{ name = "AssetUploadConfiguration" } action = @{ name = "NewAsset" } } | ConvertTo-Json

$createUrl = $hostName + "/api/v2.0/upload"

$createResponse = Invoke-WebRequest -Uri $createUrl -Method 'POST' -Body $createAssetBody -H @{"Authorization" = $authToken; "Content-Type" = "application/json"}

upload request

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

$uploadUrl = $createResponse.Headers.Location0

$fileStream = System.IO.FileStream::new($filePath, System.IO.FileMode::Open) $fileHeader = System.Net.Http.Headers.ContentDispositionHeaderValue::new('form-data') $fileHeader.Name = $fileName $fileHeader.FileName = Split-Path -leaf $filePath $fileContent = System.Net.Http.StreamContent::new($fileStream) $fileContent.Headers.ContentDisposition = $fileHeader $fileContent.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue::Parse("text/plain")

$multipartContent = System.Net.Http.MultipartFormDataContent::new() $multipartContent.Add($fileContent)

Invoke-WebRequest -Body $multipartContent -Method 'POST' -Uri $uploadUrl -Headers @{"Authorization" = $authToken}

$fileStream.Close()

finalize request

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

$finalizeUrl = $hostName + "/api/v2.0/upload/finalize"

Invoke-WebRequest -Uri $finalizeUrl -Method 'POST' -Body $createResponse.Content -H @{"Authorization" = $authToken; "Content-Type" = "application/json"}

この記事を改善するための提案がある場合は、 お知らせください!