Box Developerドキュメント

zipダウンロードを作成

post
https://api.box.com/2.0
/zip_downloads

複数のファイルやフォルダを1つのzipアーカイブファイルとしてダウンロードするためのリクエストを作成します。このAPIでは、アーカイブは返されませんが、代わりにユーザーがすべての項目にアクセスできるかどうかを確認するチェックがすべて実行され、アーカイブのダウンロードに使用できるdownload_urlおよびstatus_urlが返されます。

アーカイブの上限は、アカウントのアップロード上限または10,000ファイルのいずれかで、最初に達した上限が適用されます。

: 大きいファイルをダウンロードする場合は、距離、ネットワーク遅延、帯域幅、輻輳のほか、パケット損失率や現在のサーバー負荷など、さまざまな要因の影響を受けることがあります。このような理由から、Boxでは、ZIPアーカイブの合計サイズが25 GBを超えないようにすることをお勧めします。

リクエスト

bearer [ACCESS_TOKEN]
application/json

リクエスト本文

string本文内省略可能
"January Financials"

zipアーカイブの名前 (省略可)。この名前には、January Financials.zipのように、.zipというファイル拡張子が付加されます。

object array本文内必須

zipアーカイブに追加する項目のリスト。項目にはファイルまたはフォルダを指定できます。

string本文内必須
"12345"

アーカイブに追加する項目の識別子。この項目がフォルダの場合、IDが0のルートフォルダを指定することはできません。

string本文内必須
"file"

アーカイブに追加する項目の種類。

次の値のいずれか1つ: file,folder

レスポンス

application/jsonzipダウンロード

zipアーカイブをダウンロードする準備ができている場合、このAPIによって、download_urlstatus_urlのほか、リクエストの作成時に発生した可能性のある競合を含むレスポンスが返されます。

パラメータが不足しているか無効の場合はエラーを返します。

ほとんどの場合、このエラーは、JSONリクエスト本文が有効なJSONではないこと、項目のいずれかでIDが誤っているか指定されていないこと、いずれかの項目がファイルでもフォルダでもないこと、またはIDが0のルートフォルダがアーカイブに追加するフォルダのリストに追加されたことが原因で発生する可能性があります。

以下は、このレスポンスに対する共通エラーコードのリストです。

  • bad_request - リクエスト本文がないか無効である、またはファイルリストとフォルダリストの両方が空です。さらに、このエラーは、IDが0のルートフォルダをアーカイブに追加しようとすると返される場合があります。
  • zip_download_file_count_exceeded_limit - リクエストされたファイルおよびフォルダによって、アーカイブのファイル数が10,000を超えます。アーカイブあたりのファイル数を減らすには、リクエストを複数のリクエストに分割する必要があります。
  • zip_download_pre_compressed_bytes_exceeded_limit - リクエストされたファイルおよびフォルダにより、アーカイブが、許可されたダウンロード上限を超えます。アーカイブのサイズを縮小するには、リクエストを複数のリクエストに分割する必要があります。

Authorizationヘッダーで指定されているアクセストークンが認識されないか、指定されていない場合に返されます。

承認ヘッダーが指定されていても、ユーザーが項目にアクセスできない場合に返されます。

予期しないクライアントエラー。

post
zipダウンロードを作成
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X POST "https://api.box.com/2.0/zip_downloads" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -d '{
       "download_file_name": "January Financials",
       "items": [
         {
           "type": "file",
           "id": "12345"
         },
         {
           "type": "file",
           "id": "34325"
         },
         {
           "type": "folder",
           "id": "45678"
         }
       ]
     }'
TypeScript Gen
await client.zipDownloads.createZipDownload({
  items: [
    {
      id: file1.id,
      type: 'file' as ZipDownloadRequestItemsTypeField,
    } satisfies ZipDownloadRequestItemsField,
    {
      id: file2.id,
      type: 'file' as ZipDownloadRequestItemsTypeField,
    } satisfies ZipDownloadRequestItemsField,
    {
      id: folder1.id,
      type: 'folder' as ZipDownloadRequestItemsTypeField,
    } satisfies ZipDownloadRequestItemsField,
  ],
  downloadFileName: 'zip',
} satisfies ZipDownloadRequest);
Python Gen
client.zip_downloads.create_zip_download(
    [
        CreateZipDownloadItems(id=file_1.id, type=DownloadZipItemsTypeField.FILE.value),
        CreateZipDownloadItems(id=file_2.id, type=DownloadZipItemsTypeField.FILE.value),
        CreateZipDownloadItems(
            id=folder_1.id, type=DownloadZipItemsTypeField.FOLDER.value
        ),
    ],
    download_file_name="zip",
)
.NET Gen
await client.ZipDownloads.CreateZipDownloadAsync(requestBody: new ZipDownloadRequest(items: Array.AsReadOnly(new [] {new ZipDownloadRequestItemsField(id: file1.Id, type: ZipDownloadRequestItemsTypeField.File),new ZipDownloadRequestItemsField(id: file2.Id, type: ZipDownloadRequestItemsTypeField.File),new ZipDownloadRequestItemsField(id: folder1.Id, type: ZipDownloadRequestItemsTypeField.Folder)})) { DownloadFileName = "zip" });
Java
ArrayList<BoxZipItem> items = new ArrayList<BoxZipItem>();
BoxZipItem file = new BoxZipItem("file", "12345");
BoxZipItem folder = new BoxZipItem("folder", "156472");
items.add(file);
items.add(folder);
BoxZip zip = new BoxZip(api);
BoxZipInfo zipInfo = zip.create("Awesome Zip File", items);
Node
var name = 'test',
items = [
	{
		type: 'file',
		id: '466239504569'
	},
	{
		type: 'folder',
		id: '466239504580'
	}
];
client.files.createZip(name, items)
	.then(zip => {
		/* zip -> {
				"download_url": "https://api.box.com/2.0/zip_downloads/124hfiowk3fa8kmrwh/content",
				"status_url": "https://api.box.com/2.0/zip_downloads/124hfiowk3fa8kmrwh/status",
				"expires_at": "2018-04-25T11:00:18-07:00",
				"name_conflicts": [
					[
						{
							"id": "100",
							"type": "file",
							"original_name": "salary.pdf",
							"download_name": "aqc823.pdf"
						},
						{
							"id": "200",
							"type": "file",
							"original_name": "salary.pdf",
							"download_name": "aci23s.pdf"
						}
					],
					[
						{
							"id": "1000",
							"type": "folder",
							"original_name": "employees",
							"download_name": "3d366a_employees"
						},
						{
							"id": "2000",
							"type": "folder",
							"original_name": "employees",
							"download_name": "3aa6a7_employees"
						}
					]
				]
			}
		*/
	});

レスポンスの例

{
  "download_url": "https://dl.boxcloud.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/content",
  "status_url": "https://api.box.com/2.0/zip_downloads/29l00nfxDyHOt7RphI9zT_w==nDnZEDjY2S8iEWWCHEEiptFxwoWojjlibZjJ6geuE5xnXENDTPxzgbks_yY=/status",
  "expires_at": "2020-07-22T11:26:08Z",
  "name_conflicts": [
    [
      {
        "id": "12345",
        "type": "file",
        "original_name": "Report.pdf",
        "download_name": "3aa6a7.pdf"
      },
      {
        "id": "34325",
        "type": "file",
        "original_name": "Report.pdf",
        "download_name": "5d53f2.pdf"
      }
    ]
  ]
}