ファイル・バージョン・アップロード
/documents/api/1.2/files/{fileId}/data
マルチパート・リクエストを使用して新しいリビジョンをファイルにアップロードし、ターゲット・ファイルと入力ファイルの情報を指定します。
ノート:
特定のフォルダ内で、2つのファイルに同じ名前を指定することはできません。 ファイル名は大文字/小文字が区別されません。すなわち、File_Nameとfile_nameは同じであるとみなされます。 対象フォルダに同じ名前のファイルが存在する場合は、新規ファイルの名前に増分の数字が追加されます。 たとえば、my_fileという名前のファイルがすでに存在する場合、新規ファイルの名前はmy_file(2)となります。
リクエスト
- multipart/form-data
- fileId: string
ファイルのグローバル一意識別子(GUID)。
- accessToken(optional): string
現在のユーザーに親フォルダまたはこのファイルにアクセスすることを許可するApplinkアクセス・トークン。 このパラメータは、
appLinkIDが使用されている場合は必須です。 これはaccessTokenまたはAccessTokenとして使用できます。 - appLinkID(optional): string
現在のユーザーに親フォルダまたはこのファイルにアクセスすることを許可するApplink ID。 パラメータ
appLinkIDが使用されるときはいつでも、パラメータaccessTokenも提供されなければなりません。 働くには、このapplinkは、少なくともコントリビュータ・ロールが付与されていなければなりません。 appLinkIDまたはAppLinkIDとして使用できます。 - dAccessCode(optional): string
保護されたパブリック・リンクを使用するために必要なアクセス・コード。 次の形式のCookieヘッダーの一部として送信する必要があります:
dAccessCode-<linkID>=<passcodeValue> - linkID(optional): string
現在のユーザーにこのファイルへのアクセスを許可する、パブリック・リンクのパブリック・リンクID。 機能させるには、このパブリック・リンクにコントリビュータ・ロールが付与されている必要があります。 linkIDまたはLinkIDとして使用できます。
- metadataValues(optional): string
このパラメータを使用して、メタデータ値を、すでに親フォルダに割り当てられているコレクションに設定できます。 ルールは、設定メタデータ値REST APIに適用されるルールと同じです。
Content-Type: application/jsonを使用して、この情報をJSONオブジェクトとして示します。たとえば:
{"collection": "CollectionA",
"fieldA": "valueA",
"fieldB": "valueB",
"fieldC": "valueC"
} - primaryFile: file
アップロードするファイル。
レスポンス
- application/json
- application/xml
200レスポンス
- Location: string
新規作成されたリソースのURIは、
Locationヘッダーフィールドにあります。
object- errorCode(optional): number
エラー・コードがゼロ(0)の場合は、エラーなしです
- errorMessage(optional): string
エラー・コードがゼロ(0)の場合は、エラーなしです
- object FileDefinition
ファイル情報
object- createdBy(optional): object User
ユーザー情報
- createdTime(optional): string
ファイルの作成日。
- id(optional): string
ファイルのグローバル一意識別子(GUID)。
- mimeType(optional): string
ファイルのファイル形式
- modifiedBy(optional): object User
ユーザー情報
- modifiedTime(optional): string
ファイルの最終更新日
- name(optional): string
ファイル名。
- ownedBy(optional): object User
ユーザー情報
- parentID(optional): string
親フォルダのグローバル一意識別子(GUID)。 親フォルダがユーザーのホーム・フォルダの場合、
parentIDの値はselfです。 - reservationTime(optional): string
ファイルが予約された時刻(ファイルが予約されていない場合、レスポンス・データから除外されます)
- reservedBy(optional): object User
ユーザー情報
- size(optional): string
ファイルのサイズ(バイト単位)。
- type(optional): string
アイテム・タイプ
file。 - version(optional): string
ファイルのバージョン。
object- displayName(optional): string
ユーザーの表示名
- id(optional): string
ユーザーのグローバル一意識別子(GUID)。
- loginName(optional): string
ユーザーのログイン名。
- type(optional): string
アイテム・タイプ
user。
{
"id":"D574378400573ED9D62B3195T0000000000100000001",
"parentID":"FB4CD874EF94CD2CC1B60B72T0000000000100000001",
"name":"example2.txt",
"type":"file",
"size":"13",
"version":"1",
"createdTime":"2014-02-21T21:15:57Z",
"modifiedTime":"2014-02-21T21:18:20Z",
"createdBy":{
"displayName":"User AA",
"id":"U0EAA20910FAF3052ACB79E4T00000000001",
"loginName":"userAALoginName",
"type":"user"
},
"ownedBy":{
"displayName":"User AA",
"id":"U0EAA20910FAF3052ACB79E4T00000000001",
"loginName":"userAALoginName",
"type":"user"
},
"modifiedBy":{
"displayName":"User AA",
"id":"U0EAA20910FAF3052ACB79E4T00000000001",
"loginName":"userAALoginName",
"type":"user"
},
"errorCode":"0",
"errorMessage":"Successfully checked in content item 'ADC412030000000000000000000003'."
}
400レスポンス
403レスポンス
404レスポンス
例
次の例では、マルチパート・リクエストを使用して新しいバージョンのファイルをアップロードします。
POST .../files/D574378400573ED9D62B3195T0000000000100000001/data/
リクエスト・ヘッダー
このリクエストは、次の一般形式の境界デリミタを指定したマルチパート・リクエストです。
Content-Type: multipart/form-data; boundary=---1234567890
リクエスト本文
-----1234567890 Content-Disposition: form-data; name="primaryFile"; filename="example2.txt" Content-Type: text/plain <File Content> -----1234567890--
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{
"createdBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"createdTime": "2014-02-21T21:15:57Z",
"errorCode": "0",
"errorMessage": "Successfully checked in content item 'ADC412030000000000000000000003'.",
"id": "D574378400573ED9D62B3195T0000000000100000001",
"modifiedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"modifiedTime": "2014-02-21T21:18:20Z",
"name": "example2.txt",
"ownedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"parentID": "FB4CD874EF94CD2CC1B60B72T0000000000100000001",
"size": "13",
"type": "file",
"version": "3"
}
例2
次の例では、マルチパート・リクエストを使用して新しいバージョンのファイルをアップロードします。 このファイルは現在のユーザーに所有または共有されていないフォルダ構造にあるため、この例では、パブリック・リンクIDを使用します。
POST .../files/D574378400573ED9D62B3195T0000000000100000001/data/
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a LinkID: LF1F4C0670E07337F2A6AA1CB5D17B95F47087F4E518
リクエスト本文
-----------------------------7dc7c172076a Content-Disposition: form-data; name="primaryFile"; filename="example2.txt" Content-Type: text/plain This is example2.txt v2 -----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{
"createdBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"createdTime": "2014-02-21T21:15:57Z",
"errorCode": "0",
"errorMessage": "Successfully checked in content item 'ADC412030000000000000000000003'.",
"id": "D574378400573ED9D62B3195T0000000000100000001",
"modifiedBy": {
"displayName": "User BB",
"loginName": "userBBLoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000002",
"type": "user"
},
"modifiedTime": "2014-02-21T21:18:20Z",
"name": "example2.txt",
"ownedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"parentID": "FB4CD874EF94CD2CC1B60B72T0000000000100000001",
"size": "13",
"type": "file",
"version": "2"
}
例3
次の例では、マルチパート・リクエストを使用して新しいバージョンのファイルをアップロードします。 このファイルは現在のユーザーに所有または共有されていないフォルダ構造にあるため、この例では、アクセス・コードで保護されているパブリック・リンクIDを使用します。 アクセス・コード( test12345)は、Cookieの一部としてリクエスト・ヘッダーに発行されます。
POST .../files/D574378400573ED9D62B3195T0000000000100000001/data/
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a LinkID: LF1F4C0670E07337F2A6AA1CB5D17B95F47087F4E518 Cookie: dAccessCode-LF8D36FAFAB4388BECEAC4AEB5D17B95F47087F4E518=test12345
リクエスト本文
-----------------------------7dc7c172076a Content-Disposition: form-data; name="primaryFile"; filename="example2.txt" Content-Type: text/plain This is example2.txt v2 -----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{
"createdBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"createdTime": "2014-02-21T21:15:57Z",
"errorCode": "0",
"errorMessage": "Successfully checked in content item 'ADC412030000000000000000000003'.",
"id": "D574378400573ED9D62B3195T0000000000100000001",
"modifiedBy": {
"displayName": "User BB",
"loginName": "userBBLoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000002",
"type": "user"
},
"modifiedTime": "2014-02-21T21:18:20Z",
"name": "example2.txt",
"ownedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "U0EAA20910FAF3052ACB79E4T00000000001",
"type": "user"
},
"parentID": "FB4CD874EF94CD2CC1B60B72T0000000000100000001",
"size": "13",
"type": "file",
"version": "2"
}
例4
次の例では、マルチパート・リクエストを使用して、新しいバージョンのファイルのアップロードをリクエストします。 このファイルは現在のユーザーに所有または共有されていないフォルダ構造にあるため、アクセス拒否エラー・メッセージが返されます。
POST .../files/D574378400573ED9D62B3195T0000000000100000001/data/
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a
リクエスト本文
-----------------------------7dc7c172076a Content-Disposition: form-data; name="primaryFile"; filename="example2.txt" Content-Type: text/plain This is example2.txt v2 -----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 403
JSONレスポンス
{
"errorCode": "-20",
"errorKey": "!csUnableToCheckIn,example2.txt!csCloudItemInsufficientPrivileges,User BB,fFileGUID:D574378400573ED9D62B3195T0000000000100000001,CHECKIN_UNIVERSAL",
"errorMessage": "Content item 'example2.txt' was not successfully checked in. User 'User BB' has insufficient privilege to access fFileGUID:D574378400573ED9D62B3195T0000000000100000001 with service CHECKIN_UNIVERSAL.",
"errorType": "file",
"id": "D574378400573ED9D62B3195T0000000000100000001",
"title": "Content item 'example2.txt' was not successfully checked in. User 'User BB' has insufficient privilege to access fFileGUID:D574378400573ED9D62B3195T0000000000100000001 with service CHECKIN_UNIVERSAL.",
"type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"
}
例5
次の例では、マルチパート・リクエストを使用して、新しいバージョンのファイルのアップロードをリクエストします。 このファイルは現在のユーザーに所有または共有されていないフォルダ構造にあります。また、アクセス・コードで保護されているパブリック・リンクのみを使用可能です。 アクセス・コードがリクエストの一部として送信されなかったため、エラーが返されます。
POST .../files/D574378400573ED9D62B3195T0000000000100000001/data/
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a LinkID: LF1F4C0670E07337F2A6AA1CB5D17B95F47087F4E518
リクエスト本文
-----------------------------7dc7c172076a Content-Disposition: form-data; name="primaryFile"; filename="example2.txt" Content-Type: text/plain This is example2.txt v2 -----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 403
JSONレスポンス
{
"errorCode": "-18",
"errorKey": "!csUnableToCheckIn,idcTestNewFile1KB.txt!csAccessCodeRequiredForLinkAccess",
"errorMessage": "Content item 'idcTestNewFile1KB.txt' was not successfully checked in. The access code must be provided to access the link.",
"errorType": "file",
"id": "D574378400573ED9D62B3195T0000000000100000001",
"title": "Content item 'idcTestNewFile1KB.txt' was not successfully checked in. The access code must be provided to access the link.",
"type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"
}
例6
次の例では、マルチパート・リクエストを使用して新しいバージョンのファイルをアップロードします。 この例では、グローバル・コレクションCollectionAのメタデータ値も設定します。
POST .../files/D4100E975A8096829C9CCB06B5D17B95F47087F4E518/data
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a
リクエスト本文
-----------------------------7dc7c172076a
Content-Disposition: form-data; name="primaryFile"; filename="fileWithMetadata.txt"
Content-Type: text/plain
This is version 2 of a file containing metadata values.
-----------------------------7dc7c172076a
Content-Disposition: form-data; name="metadataValues"
Content-Type: application/json
{
"collection": "CollectionA",
"fieldA": "valueAv2",
"fieldB": "valueBv2",
"fieldC": "valueCv2"
}
-----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{
"createdBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "UEB6AD431E4357AE752CE3F2B5D17B95F470",
"type": "user"
},
"createdTime": "2016-07-13T19:47:23Z",
"errorCode": "0",
"errorKey": "!csServiceStatusMessage_checkin,SOMETHING00004370530000001200",
"errorMessage": "Successfully checked in content item 'SOMETHING00004370530000001200'.",
"id": "D4100E975A8096829C9CCB06B5D17B95F47087F4E518",
"metadata": {
"GlobalFile1": {
"fieldA": "valueAv2",
"fieldB": "valueBv2",
"fieldC": "valueCv2"
}
},
"mimeType": "text/plain",
"modifiedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "UEB6AD431E4357AE752CE3F2B5D17B95F470",
"type": "user"
},
"modifiedTime": "2016-07-13T19:52:48Z",
"name": "fileWithMetadata.txt",
"ownedBy": {
"displayName": "User AA",
"loginName": "userAALoginName",
"id": "UEB6AD431E4357AE752CE3F2B5D17B95F470",
"type": "user"
},
"parentID": "F79B040D5393DAC0F3511BBAB5D17B95F47087F4E518",
"size": "56",
"type": "file",
"version": "2"
}
例7
次の例では、マルチパート・リクエストを使用して新しいバージョンのファイルをアップロードします。 このファイルは、現在のユーザーが所有していない、または共有していないフォルダ構造の下にあるため、この例ではapplinkを使用しています。 applink IDとアクセス・トークンはリクエスト・ヘッダーに送信されます。
POST .../files/DED694950C14AFF280419F9AB5D17B95F47087F4E518/data
リクエスト・ヘッダー
Content-Type: multipart/form-data; boundary=---------------------------7dc7c172076a appLinkID: LF5Bxj4TPo_p4n4qWn0tbKTicR2cTUJKv7X_ng9E7ry93rRuDokPqS1d6-wKwhb_wtcGYFDsI_cNMxeKQ-HR-FXQhiVoGRTYM_MPZY8qpICfYU94mmnMjM_cvsRhKMzc0NJgvwEJfqqDwPsAVrhc8cmg== accessToken: 352FpiMmW66PeYI1Gh5b83I9CXRwZhLfYAu4TXdqpzD8uNKUBMZVVJ3ZvivUW8kQ
リクエスト本文
-----------------------------7dc7c172076a Content-Disposition: form-data; name="primaryFile"; filename="fileViaApplink.txt" Content-Type: text/plain This is fileViaApplink.txt v2 -----------------------------7dc7c172076a--
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{
"createdBy": {
"displayName": "User BB",
"id": "U5083EA1954687218BA6C3D9B5D17B95F470",
"loginName": "U5083EA1954687218BA6C3D9B5D17B95F470",
"type": "user"
},
"createdTime": "2017-06-26T15:29:00Z",
"errorCode": "0",
"errorKey": "!csServiceStatusMessage_checkin,SOMETHING00004370530000007006",
"errorMessage": "Successfully checked in content item 'SOMETHING00004370530000007006'.",
"id": "DED694950C14AFF280419F9AB5D17B95F47087F4E518",
"mimeType": "text/plain",
"modifiedBy": {
"displayName": "User BB",
"id": "U5083EA1954687218BA6C3D9B5D17B95F470",
"loginName": "U5083EA1954687218BA6C3D9B5D17B95F470",
"type": "user"
},
"modifiedTime": "2017-06-26T15:29:07Z",
"name": "fileViaApplink.txt",
"ownedBy": {
"displayName": "User AA",
"id": "UEB6AD431E4357AE752CE3F2B5D17B95F470",
"loginName": "userAALoginName",
"type": "user"
},
"parentID": "FDC22B65E850730CAA60AF83B5D17B95F47087F4E518",
"size": "29",
"type": "file",
"version": "2"
}