Box Developerドキュメント

Box Developerドキュメントの新しいベータ版サイトがまもなくリリースされる予定です。最新の開発者向けガイド、APIリファレンス、AI搭載の検索により、Boxを使用した迅速な開発をサポートします。更新情報については今しばらくお待ちください。

最新バージョン

ファイルの一部をアップロード

put
https://{box-upload-server}/api/2.0
/files/upload_sessions/:upload_session_id

このエンドポイントはバージョン2024.0です。引き続き使用するために 変更は必要ありません。詳細については、 **Box APIのバージョン管理**を参照してください。

アップロードセッションでファイルのチャンクをアップロードします。

実際のエンドポイントURLはCreate upload sessionおよびGet upload sessionエンドポイントが返します。

リクエスト

bearer [ACCESS_TOKEN]
application/octet-stream

リクエストヘッダー

stringヘッダー内必須
bytes 8388608-16777215/445856194

チャンクのバイト範囲。

このセッションですでにアップロードされたパーツの範囲と重複しないようにしてください。各パーツのサイズは、作成したアップロードセッションで指定されているパーツサイズとまったく同じサイズである必要があります。ただし、ファイルの最後のパーツは小さくなる可能性があるため、例外となります。

content-rangeの値を指定する際は、以下の点に注意してください。

  • 各パーツのバイト範囲の下限は、パーツサイズの倍数にする必要があります。
  • 上限は、パーツサイズの倍数から1を引いた値にする必要があります。
stringヘッダー内必須
sha=fpRyg5eVQletdZqEKaFlqwBXJzM=

分割アップロードのRFC3230メッセージのダイジェスト。

サポートされているのはSHA1のみです。SHA1ダイジェストはbase64でエンコードされている必要があります。このヘッダーの形式は、sha=BASE64_ENCODED_DIGESTです。

SHAダイジェストの値を取得するには、openSSLコマンドを使用して、ファイルのパーツをエンコードします: openssl sha1 -binary <FILE_PART_NAME> | base64

パスパラメータ

stringパス内必須
D5E3F7A

アップロードセッションのID。

リクエスト本文

binary本文内必須

ファイルのバイナリコンテンツ。

レスポンス

チャンクは正常にアップロードされました。

チャンクがこれまでにアップロードされた別のチャンクと競合する場合は、エラーを返します。

前提条件を満たしていない場合は、エラーを返します。

コンテンツの範囲がセッションの指定範囲と一致しない場合は、エラーを返します。

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

put
ファイルの一部をアップロード
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

Box SDKのバージョン戦略の詳細については、 **こちら**を確認してください。


cURL
curl -i -X PUT "https://upload.box.com/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "digest: sha=fpRyg5eVQletdZqEKaFlqwBXJzM=" \
     -H "content-range: bytes 8388608-16777215/445856194" \
     -H "content-type: application/octet-stream" \
     --data-binary @<FILE_NAME>
Node/TypeScript v10
await client.chunkedUploads.uploadFilePart(
  acc.uploadSessionId,
  generateByteStreamFromBuffer(chunkBuffer),
  {
    digest: digest,
    contentRange: contentRange,
  } satisfies UploadFilePartHeadersInput,
);
Python v10
client.chunked_uploads.upload_file_part(
    acc.upload_session_id,
    generate_byte_stream_from_buffer(chunk_buffer),
    digest,
    content_range,
)
.NET v10
await client.ChunkedUploads.UploadFilePartAsync(uploadSessionId: acc.UploadSessionId, requestBody: Utils.GenerateByteStreamFromBuffer(buffer: chunkBuffer), headers: new UploadFilePartHeaders(digest: digest, contentRange: contentRange));
Swift v10
try await client.chunkedUploads.uploadFilePart(uploadSessionId: acc.uploadSessionId, requestBody: Utils.generateByteStreamFromBuffer(buffer: chunkBuffer), headers: UploadFilePartHeaders(digest: digest, contentRange: contentRange))
Java v10
client.getChunkedUploads().uploadFilePart(acc.getUploadSessionId(), generateByteStreamFromBuffer(chunkBuffer), new UploadFilePartHeaders(digest, contentRange))
.NET v6
await client.ChunkedUploads.UploadFilePartAsync(uploadSessionId: acc.UploadSessionId, requestBody: Utils.GenerateByteStreamFromBuffer(buffer: chunkBuffer), headers: new UploadFilePartHeaders(digest: digest, contentRange: contentRange));
Node v4
await client.chunkedUploads.uploadFilePart(
  acc.uploadSessionId,
  generateByteStreamFromBuffer(chunkBuffer),
  {
    digest: digest,
    contentRange: contentRange,
  } satisfies UploadFilePartHeadersInput,
);

レスポンスの例

{
  "part": {
    "offset": 16777216,
    "part_id": "6F2D3486",
    "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc",
    "size": 3222784
  }
}