日本時間5月16日のContent Cloud Summitで、カスタムアプリにBox AI APIを活用する方法を紹介します。

詳細を表示

ファイルを更新

put
https://api.box.com/2.0
/files/:file_id

ファイルを更新します。ファイルの名前変更や移動、共有リンクの作成、ファイルのロックといった目的に使用できます。

リクエスト

bearer [ACCESS_TOKEN]
application/json

パスパラメータ

stringパス内必須
12345

ファイルを表す一意の識別子。

ファイルIDを確認するには、ウェブアプリケーションでファイルにアクセスして、URLからIDをコピーします。たとえば、URLがhttps://*.app.box.com/files/123の場合、file_id123です。

クエリパラメータ

string arrayクエリ内省略可能
id,type,name

レスポンスに含める属性のコンマ区切りリスト。このパラメータを使用すると、標準のレスポンスには通常含まれないフィールドをリクエストできます。

このパラメータを指定すると、明示的に指定しない限り標準フィールドはレスポンスに含まれず、リクエストしたフィールドのほかには、Mini版の表示のフィールドしか返されないことに注意してください。

リクエスト本文

object array本文内省略可能

このファイルをメンバーとして追加するコレクションの配列。現時点では、favoritesコレクションのみがサポートされています。

コレクションのIDを取得するには、すべてのコレクションのリストを取得エンドポイントを使用します。

空の配列[]またはnullを渡すと、すべてのコレクションからこのファイルが削除されます。

string本文内省略可能
"11446498"

このオブジェクトの一意の識別子

string本文内省略可能
"file"

このオブジェクトのタイプ

string本文内省略可能
"The latest reports. Automatically updated"256

ファイルの説明。Boxウェブアプリでファイルを表示すると、右側のサイドバーパネルに表示されます。さらに、このインデックスはファイルの検索インデックスで使用されるため、ユーザーは説明の内容でファイルを見つけることができます。

string / date-time本文内省略可能
"2012-12-12T10:53:43-08:00"

特定のファイルのリテンションの有効期限のタイムスタンプ。この日付は、一度ファイルに設定すると短縮できません。

object本文内

項目のロックを定義します。これにより、ロックを作成したユーザー以外は、この項目を移動、名前変更、および変更できなくなります。

これをnullに設定すると、ロックが削除されます。

string本文内省略可能
"lock"

このオブジェクトのタイプ。

次の値に固定: lock

string / date-time本文内省略可能
"2012-12-12T10:53:43-08:00"

ロックが期限切れになる日時を定義します。

boolean本文内省略可能
true

ロック中でもファイルのダウンロードを許可するかどうかを定義します。

string本文内省略可能
"NewFile.txt"

ファイルの別の名前 (省略可)。これを使用してファイルの名前を変更できます。

object本文内

ファイルの新しい親フォルダ (省略可)。これを使用して、ファイルを新しいフォルダに移動できます。

string本文内省略可能
"123"

親項目のID

object本文内

ファイルをダウンロードできるユーザーを定義します。

string本文内省略可能
"open"

このファイルのダウンロードが許可されるユーザーを定義します。使用可能な値は、open (すべてのユーザー) またはcompany (ユーザーの会社のその他のメンバー) です。

この設定は、通常コラボレーションのroleに含まれるダウンロード権限より優先されます。companyに設定すると、基本的に、ロールがviewerまたはeditorである外部ユーザーのダウンロードオプションが削除されます。

次の値のいずれか1つ: open,company

string array本文内省略可能
["approved"]

この項目のタグ。これらのタグはBoxウェブアプリおよびモバイルアプリで項目の横に表示されます。

タグを追加または削除するには、項目の現在のタグを取得して変更してから、このフィールドを更新します。

タグの数は、1項目あたり100個までに制限され、一意のタグは会社あたり10,000個までに制限されます。

リクエストヘッダー

stringヘッダー内
省略可能
1

変更を加える前にこの項目が最近変更されていないことを確認します。

その項目の最後に認識されたetag値をこのヘッダーに渡すと、それ以降に項目が変更されている場合、エンドポイントは412 Precondition Failedを返して失敗します。

レスポンス

application/jsonファイル (Full)

ファイルオブジェクトを返します。

使用可能なすべてのフィールドがデフォルトで返されるとは限りません。特定のフィールドを明示的にリクエストするには、fieldsクエリパラメータを使用します。

新しいリテンション期間が最大リテンション期間を超える場合に返されます。

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

更新を完了するための権限がユーザーに不足している場合に返されます。

  • 認証済みユーザーにファイルの移動先フォルダへのアクセス権限がない場合にaccess_denied_insufficient_permissionsが返されます。
  • リテンション期間が現在のリテンションのタイムスタンプと等しいか、それより短い場合に返されます。
  • リテンションの対象でないfile_idが入力された場合に返されます。
  • ファイルが保持されているものの、廃棄アクションがremove_retentionに設定されている場合に返されます。
  • 情報バリアの制限によりフォルダのコピーが禁止されている場合にforbidden_by_policyが返されます。

ファイルが見つからない場合、またはユーザーにファイルへのアクセス権限が与えられていない場合に返されます。

file_idが認識されていない形式で指定されている場合に返されます。

If-Matchヘッダーがファイルの現在のetag値と一致しない場合にエラーを返します。これは、ファイルが前回リクエストされたときから変更されていることを示します。

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

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

リクエストの例

cURL
curl -i -X PUT "https://api.box.com/2.0/files/12345" \
     -H "authorization: Bearer <ACCESS_TOKEN>" \
     -H "content-type: application/json" \
     -d '{
       "name": "New name"
     }'
.NET
// Rename file 11111
var requestParams = new BoxFileRequest()
{
    Id = "11111",
    Name = "New name.pdf"
};
BoxFile updatedFile = await client.FilesManager.UpdateInformationAsync(requestParams);
Java
BoxFile file = new BoxFile(api, "id");
BoxFile.Info info = file.new Info();
info.setName("New Name");
file.updateInfo(info);
Python
file_id = '11111'
updated_file = client.file(file_id).update_info(data={'description': 'My file'})
Node
client.files.update('75937', { name : 'New name.pdf', fields: 'name' })
	.then(updatedFile => {
		/* updatedFile => {
			type: 'file',
			id: '11111',
			name: 'New name.pdf'
		}
		*/
	});
iOS
client.files.update(fileId: "11111", name: "New file name.docx") { (result: Result<File, BoxSDKError>) in
    guard case let .success(file) = result else {
        print("Error updating file information")
        return
    }

    print("File \(file.name) was updated at \(file.modifiedAt)")
}

レスポンスの例

{
  "id": "12345",
  "type": "file",
  "allowed_invitee_roles": [
    "editor"
  ],
  "classification": {
    "color": "#FF0000",
    "definition": "Content that should not be shared outside the company.",
    "name": "Top Secret"
  },
  "comment_count": 10,
  "content_created_at": "2012-12-12T10:53:43-08:00",
  "content_modified_at": "2012-12-12T10:53:43-08:00",
  "created_at": "2012-12-12T10:53:43-08:00",
  "created_by": {
    "id": "11446498",
    "type": "user",
    "login": "ceo@example.com",
    "name": "Aaron Levie"
  },
  "description": "Contract for Q1 renewal",
  "disposition_at": "2012-12-12T10:53:43-08:00",
  "etag": "1",
  "expires_at": "2012-12-12T10:53:43-08:00",
  "expiring_embed_link": {
    "access_token": "c3FIOG9vSGV4VHo4QzAyg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ",
    "expires_in": 3600,
    "restricted_to": [
      {
        "scope": "item_download",
        "object": {
          "id": "12345",
          "etag": "1",
          "type": "folder",
          "sequence_id": "3",
          "name": "Contracts"
        }
      }
    ],
    "token_type": "bearer",
    "url": "https://cloud.app.box.com/preview/expiring_embed/..."
  },
  "extension": "pdf",
  "file_version": {
    "id": "12345",
    "type": "file_version",
    "sha1": "134b65991ed521fcfe4724b7d814ab8ded5185dc"
  },
  "has_collaborations": true,
  "is_accessible_via_shared_link": true,
  "is_externally_owned": true,
  "is_package": true,
  "item_status": "active",
  "lock": {
    "id": "11446498",
    "type": "lock",
    "app_type": "office_wopiplus",
    "created_at": "2012-12-12T10:53:43-08:00",
    "created_by": {
      "id": "11446498",
      "type": "user",
      "login": "ceo@example.com",
      "name": "Aaron Levie"
    },
    "expired_at": "2012-12-12T10:53:43-08:00",
    "is_download_prevented": true
  },
  "metadata": {
    "enterprise_27335": {
      "marketingCollateral": {
        "$canEdit": true,
        "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
        "$parent": "folder_59449484661",
        "$scope": "enterprise_27335",
        "$template": "marketingCollateral",
        "$type": "properties-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
        "$typeVersion": 2,
        "$version": 1
      }
    }
  },
  "modified_at": "2012-12-12T10:53:43-08:00",
  "modified_by": {
    "id": "11446498",
    "type": "user",
    "login": "ceo@example.com",
    "name": "Aaron Levie"
  },
  "name": "Contract.pdf",
  "owned_by": {
    "id": "11446498",
    "type": "user",
    "login": "ceo@example.com",
    "name": "Aaron Levie"
  },
  "parent": {
    "id": "12345",
    "type": "folder",
    "etag": "1",
    "name": "Contracts",
    "sequence_id": "3"
  },
  "path_collection": {
    "entries": [
      {
        "id": "12345",
        "etag": "1",
        "type": "folder",
        "sequence_id": "3",
        "name": "Contracts"
      }
    ],
    "total_count": 1
  },
  "permissions": {
    "can_annotate": true,
    "can_comment": true,
    "can_delete": true,
    "can_download": true,
    "can_invite_collaborator": true,
    "can_preview": true,
    "can_rename": true,
    "can_set_share_access": true,
    "can_share": true,
    "can_upload": true,
    "can_view_annotations_all": true,
    "can_view_annotations_self": true
  },
  "purged_at": "2012-12-12T10:53:43-08:00",
  "representations": {
    "entries": [
      {
        "content": {
          "url_template": "https://dl.boxcloud.com/api/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048/content/{+asset_path}?watermark_content=4567"
        },
        "info": {
          "url": "https://api.box.com/2.0/internal_files/123/versions/345/representations/png_paged_2048x2048"
        },
        "properties": {
          "dimensions": "2048x2048",
          "paged": true,
          "thumb": true
        },
        "representation": "png",
        "status": {
          "state": "success"
        }
      }
    ]
  },
  "sequence_id": "3",
  "sha1": "85136C79CBF9FE36BB9D05D0639C70C265C18D37",
  "shared_link": {
    "access": "open",
    "download_count": 3,
    "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
    "effective_access": "company",
    "effective_permission": "can_download",
    "is_password_enabled": true,
    "permissions": {
      "can_download": true,
      "can_edit": false,
      "can_preview": true
    },
    "preview_count": 3,
    "unshared_at": "2018-04-13T13:53:23-07:00",
    "url": "https://www.box.com/s/vspke7y05sb214wjokpk",
    "vanity_name": "my_url",
    "vanity_url": "https://acme.app.box.com/v/my_url/"
  },
  "shared_link_permission_options": [
    "can_preview"
  ],
  "size": 629644,
  "tags": [
    "approved"
  ],
  "trashed_at": "2012-12-12T10:53:43-08:00",
  "uploader_display_name": "Ellis Wiggins",
  "version_number": "1",
  "watermark_info": {
    "is_watermarked": true
  }
}