Box Developerドキュメント

アップロードセッションを作成

post
https://upload.box.com/api/2.0
/files/upload_sessions

新しいファイルのアップロードセッションを作成します。

リクエスト

bearer [ACCESS_TOKEN]
application/json

リクエスト本文

string本文内必須
"Project.mov"

新規ファイルの名前

integer (int64)本文内必須
104857600

アップロードされるファイルの合計バイト数

string本文内必須
"0"

新しいファイルのアップロード先フォルダのID。

レスポンス

新しいアップロードセッションを返します。

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

  • missing_destination: folder_idが指定されていません
  • invalid_folder_id: folder_idが無効です
  • item_name_invalid: file_nameが無効です
  • missing_file_size: file_sizeが指定されていません
  • invalid_file_size: file_sizeが有効な数値ではありません
  • file_size_too_small: file_sizeが、このAPIによるアップロードの最小ファイルサイズを下回っています
  • missing_file_name: file_nameが指定されていません

何らかの理由で操作が許可されていない場合にエラーを返します。

  • storage_limit_exceeded: アカウントのストレージサイズの上限に達しました

親フォルダが見つからないか、認証済みユーザーが親フォルダにアクセスできない場合はエラーを返します。

  • invalid_parameter: folder_id値は、ユーザーがアクセスできないフォルダまたは存在しないフォルダを表します。

ファイルがすでに存在する場合、またはアカウントのディスク容量が不足している場合は、エラーを返します。

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

post
アップロードセッションを作成
このドキュメント内で一部のAPIを試せるようになりました。
ログイン

リクエストの例

cURL
curl -i -X POST "https://upload.box.com/api/2.0/files/upload_sessions" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "folder_id": "0",
       "file_size": 104857600,
       "file_name": "Contract.pdf"
     }'
TypeScript Gen
await client.chunkedUploads.createFileUploadSession({
  fileName: fileName,
  fileSize: fileSize,
  folderId: parentFolderId,
} satisfies CreateFileUploadSessionRequestBody);
Python Gen
client.chunked_uploads.create_file_upload_session(
    parent_folder_id, file_size, file_name
)
.NET Gen
await client.ChunkedUploads.CreateFileUploadSessionAsync(requestBody: new CreateFileUploadSessionRequestBody(fileName: fileName, fileSize: fileSize, folderId: parentFolderId));
Java
BoxFileUploadSession.Info sessionInfo;
if (/* uploading a new file */) {
    // Create the upload session for a new file
    BoxFolder rootFolder = BoxFolder.getRootFolder(api);
    sessionInfo = rootFolder.createUploadSession("New Large File.pdf", fileSize);
} else if (/* uploading a new version of an exiting file */) {
    // Create the uplaod session for a new version of an existing file
    String fileID = "93465";
    BoxFile file = new BoxFile(api, fileID);
    sessionInfo = file.createUploadSession(fileSize);
}

//Get the session resource from the session info
BoxFileUploadSession session = sessionInfo.getResource();

//Create the Message Digest for the whole file
MessageDigest digest = null;
try {
    digest = MessageDigest.getInstance("SHA1");
} catch (NoSuchAlgorithmException ae) {
    throw new BoxAPIException("Digest algorithm not found", ae);
}
Python
file_size = 26000000
file_name = 'test_file.pdf'
upload_session = client.folder('22222').create_upload_session(file_size, file_name)
print(f'Created upload session {upload_session.id} with chunk size of {upload_session.part_size} bytes')
Node
// Create a session to upload a 2GB file "huge.pdf" into folder 12345
client.files.createUploadSession('12345', 2147483648, 'huge.pdf', callback);

レスポンスの例

{
  "id": "F971964745A5CD0C001BBE4E58196BFD",
  "type": "upload_session",
  "num_parts_processed": 455,
  "part_size": 1024,
  "session_endpoints": {
    "abort": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD",
    "commit": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/commit",
    "list_parts": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/parts",
    "log_event": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD/log",
    "status": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD",
    "upload_part": "https://{box-upload-server}/api/2.0/files/upload_sessions/F971964745A5CD0C001BBE4E58196BFD"
  },
  "session_expires_at": "2012-12-12T10:53:43-08:00",
  "total_parts": 1000
}