ファイル・パブリック・リンク作成
/documents/api/1.2/publiclinks/file/{fileId}
指定したファイルのパブリック・リンクを作成します。
パブリック・リンクを使用すると、アカウントを持っているかどうかに関係なく、特定のユーザーがリクエストされたファイルにアクセスできます。
ノート:
パブリック・リンクを作成するには、リクエスタにそのフォルダまたはファイルに対する管理権限が必要です。 つまり、リクエスタは所有者であるか、管理者ロールが必要ということです。
リクエスト
- application/json
- application/xml
- fileId: string
ファイルのグローバル一意識別子(GUID)。
object
- assignedUsers: string
リンクを使用できるユーザーのグループ。
- ユーザーのカンマ区切りリスト(ユーザーID、ログイン名または電子メール・アドレスのいずれか)
- @serviceinstance: アカウントを持つユーザーがロールで指定された権限によってリソースにアクセスできます
- @everybody: あらゆるユーザーがロールで指定された権限によってリソースにアクセスできます
- expirationTime(optional): string
パブリック・リンクが期限切れになる日時(
yyyy-mm-ddThh:mm:ss
形式)。For example, 2017-01-01T00:00:01.
有効期限を指定しない場合、ユーザーがリンクを削除するまでリンクは有効です。 - linkName(optional): string
パブリック・リンクの名前。 リンク名はオプションですが、リソースには名前のないパブリック・リンクを1つのみ持つことができます。
- password(optional): string
パブリック・リンクのパスワード。 使用できるのは8文字以上50文字以下です。 パスワードを指定しない場合、パスワードなしでリンクを使用できます。
- role (オプション): string
使用可能な値:
[ "viewer", "downloader", "contributor" ]
共有アイテムへのアクセス・レベル
ノート:
デフォルトのロールはビューアですが、パブリック・リンクのデフォルト・ロールに対するAPIユーザーのプリファレンス設定は、このデフォルトを別の値でオーバーライドできます。 サービス・コールによってロールを明示的に設定するのが理想的です。
管理者または所有者を除き、指定したユーザーに任意の標準ロールを付与できます。
- ビューア: ビューアはファイルおよびフォルダを表示できますが、何かを変更することはできません。
- ダウンローダ: ダウンローダはファイルをダウンロードし、自分のコンピュータに保存することもできます。
- コントリビュータ: コントリビュータはファイルの変更、ファイルの更新、新規ファイルのアップロードおよびファイルの削除を行うこともできます。
{
"assignedUsers":"@serviceinstance",
"expirationTime":"2016-01-01T00:00:01Z",
"password":"MyPassword",
"linkName":"MyFileLinkOne",
"role":"contributor"
}
レスポンス
- application/json
- application/xml
200レスポンス
リクエストが処理されました。
object
- errorCode(optional): string
エラー・コードがゼロ(0)の場合は、エラーなしです
- id(optional): string
フォルダまたはファイルのグローバル一意識別子(GUID)
- object PublicLinkDefinition
パブリック・リンク情報。
object
- assignedUsers(optional): string
リンクを使用できるユーザーのグループ。
- createdTime(optional): string
パブリック・リンクが作成された日時。
- expirationTime(optional): string
パブリック・リンクの期限が切れる日時
- lastModifiedTime(optional): string
パブリック・リンクが最後に変更された日時
- linkID(optional): string
パブリック・リンクのグローバル一意識別子(GUID)。
- linkName(optional): string
パブリック・リンクの名前。
- ownedBy(optional): object User
ユーザー情報
- password(optional): string
パブリック・リンクのパスワード。 使用できるのは8文字以上50文字以下です。 パスワードでは、大文字と小文字が区別されます。
- role (オプション): string
使用可能な値:
[ "viewer", "downloader", "contributor" ]
共有アイテムへのアクセス・レベル - type(optional): string
アイテム・タイプ
publiclink
。
object
- displayName(optional): string
ユーザーの表示名
- id(optional): string
ユーザーのグローバル一意識別子(GUID)。
- loginName(optional): string
ユーザーのログイン名。
- type(optional): string
アイテム・タイプ
user
。
{
"linkID":"LDFD004B846DB106DB8B2906T0000000000100000001",
"linkName":"MyFileLinkOne",
"assignedUsers":"@everybody",
"role":"contributor",
"type":"publiclink",
"createdTime":"2015-06-10T16:13:19Z",
"expirationTime":"2017-01-01T00:00:01Z",
"lastModifiedTime":"2015-06-10T16:13:19Z",
"ownedBy":{
"id":"U0EAA20910FAF3052ACB79E4T00000000001",
"displayName":"User AA",
"type":"user"
},
"errorCode":"0",
"id":"D1E1E9F089AC1EF8481E5B94T0000000000100000001"
}
400レスポンス
リクエスト・パラメータが正しい形式ではありません。
403レスポンス
ユーザーに読取り権限がない場合は禁止されています。
404レスポンス
ファイルIDが見つかりません。
例
次の例は、コントリビュータ・レベルのアクセスを、アカウントの有無に関係なく指定したファイルのすべてのユーザーに付与します。
POST .../publiclinks/file/D1E1E9F089AC1EF8481E5B94T0000000000100000001
リクエスト・ヘッダー
なし。
リクエスト本文
{ "assignedUsers": "@everybody", "expirationTime": "2016-01-01T00:00:01Z", "password": "MyPassword", "linkName": "MyFileLinkOne", "role": "contributor" }
HTTPステータス・コード
HTTP_STATUS = 200
JSONレスポンス
{ "assignedUsers": "@everybody", "createdTime": "2015-06-10T16:13:19Z", "errorCode": "0", "expirationTime": "2017-01-01T00:00:01Z", "id": "D1E1E9F089AC1EF8481E5B94T0000000000100000001", "lastModifiedTime": "2015-06-10T16:13:19Z", "linkID": "LDFD004B846DB106DB8B2906T0000000000100000001", "linkName": "MyFileLinkOne", "ownedBy": { "displayName": "User AA", "loginName": "userAALoginName", "id": "U0EAA20910FAF3052ACB79E4T00000000001", "type": "user" }, "role": "contributor", "type": "publiclink" }
例2
次の例では、MyFileLinkDuplicate
が指定されたファイルIDに対してすでに作成されているため、パブリック・リンクは作成されません。
POST .../publiclinks/file/D88BB10A715A62A28C7A64B545B3E9DD6490E298CA02
リクエスト・ヘッダー
なし。
リクエスト本文
{ "assignedUsers": "@everybody", "expirationTime": "2019-01-01T00:00:01Z", "password": "MyPassword", "linkName": "MyFileLinkDuplicate", "role": "contributor" }
HTTPステータス・コード
HTTP_STATUS = 409
JSONレスポンス
{ "errorCode": "-17", "errorKey": "!csUnableToCreateSharedLink!csLinkWithSameNameExists", "errorMessage": "Sorry, but we couldn't create a link to this content. Please try again later. Sorry, we cannot create a public link because there is already a link with that name. Make sure to use a unique name when creating a public link.", "errorType": "publiclink", "id": "D88BB10A715A62A28C7A64B545B3E9DD6490E298CA02", "linkName": "MyFileLinkDuplicate", "role": "contributor", "title": "Sorry, but we couldn't create a link to this content. Please try again later. Sorry, we cannot create a public link because there is already a link with that name. Make sure to use a unique name when creating a public link.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }
例3
次の例では、必要なassignedUsers
パラメータがリクエスト本文に存在しないため、パブリック・リンクは作成されません。
POST .../publiclinks/file/D773CC8078273C897108399345B3E9DD64907CA0D19F
リクエスト・ヘッダー
なし。
リクエスト本文
{ "linkName": "MyFileLink3", "role": "contributor" }
HTTPステータス・コード
HTTP_STATUS = 400
JSONレスポンス
{ "errorCode": "-97", "errorKey": "!csUnableToCreateSharedLink!csRequiredServiceParameterMissing,dAssignedUsers,CREATE_SHARED_LINK", "errorMessage": "Sorry, but we couldn't create a link to this content. Please try again later. Parameter 'dAssignedUsers' required by service CREATE_SHARED_LINK is missing.", "errorType": "publiclink", "id": "D773CC8078273C897108399345B3E9DD64907CA0D19F", "linkName": "MyFileLink3", "role": "contributor", "title": "Sorry, but we couldn't create a link to this content. Please try again later. Parameter 'dAssignedUsers' required by service CREATE_SHARED_LINK is missing.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }
例4
次の例では、指定されたファイルIDが存在しないため、パブリック・リンクは作成されません。
POST .../publiclinks/file/D88BB54A715A62A28C7A64B545B3E9DD6490E298CA02
リクエスト・ヘッダー
なし。
リクエスト本文
{ "assignedUsers": "@everybody", "linkName": "MyFileLink4", "role": "viewer" }
HTTPステータス・コード
HTTP_STATUS = 404
JSONレスポンス
{ "assignedUsers": "@everybody", "errorCode": "-16", "errorKey": "!csUnableToCreateSharedLink!csSecurityValidationFailed!csFldDoesNotExist,D88BB54A715A62A28C7A64B545B3E9DD6490E298CA02!csUnprivilegedSystemError", "errorMessage": "Sorry, but we couldn't create a link to this content. Please try again later. Security validation failed. 'D88BB54A715A62A28C7A64B545B3E9DD6490E298CA02' does not exist. The error was caused by an internally generated issue. The error has been logged.", "errorType": "publiclink", "id": "D88BB54A715A62A28C7A64B545B3E9DD6490E298CA02", "linkName": "MyFileLink4", "role": "viewer", "title": "Sorry, but we couldn't create a link to this content. Please try again later. Security validation failed. 'D88BB54A715A62A28C7A64B545B3E9DD6490E298CA02' does not exist. The error was caused by an internally generated issue. The error has been logged.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }
例5
次の例では、assignedUsers
に指定されたユーザーが存在しないため、パブリック・リンクは作成されません。
POST .../publiclinks/file/D425BBE926A9DED2A822B6C245B3E9DD64907CA0D19F
リクエスト・ヘッダー
なし。
リクエスト本文
{ "assignedUsers": "invalid", "linkName": "MyFileLink55", "role": "viewer" }
HTTPステータス・コード
HTTP_STATUS = 404
JSONレスポンス
{ "errorCode": "-25", "errorKey": "!csUnableToCreateSharedLink!csSharedLinkUserNotFound,invalid", "errorMessage": "Sorry, but we couldn't create a link to this content. Please try again later. User 'invalid' doesn't exist.", "errorType": "publiclink", "id": "D425BBE926A9DED2A822B6C245B3E9DD64907CA0D19F", "linkName": "MyFileLink55", "role": "viewer", "title": "Sorry, but we couldn't create a link to this content. Please try again later. User 'invalid' doesn't exist.", "type": "https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html" }