ファイルアップロード / ダウンロード
Botのコンテンツ、Drive、ユーザー、アドレス帳などで利用するファイルをアップロードまたはダウンロードする方法について説明します。
1. ファイルのアップロード
ファイルをアップロードするフローは、以下の通りです。
- ファイルのアップロードURLの取得
- ファイルのアップロードを実行
1-1. ファイルのアップロードURLの取得
各リソースのファイルのアップロードAPIを使用して、ファイルをアップロードするURLを取得します。
Request URL
APIオペレーションのごとに、Request URLと、アップロードできるファイルの最大サイズなどの制約や、Request Bodyの内容が異なります。詳細はそれぞれのAPIガイドを参照してください。
- Bot > コンテンツアップロード
- Contact > 連絡先写真のアップロード
- User > ユーザーの写真アップロード
- Group > チーム/グループ - ファイルのアップロード
- Group > チーム/グループ - ルートフォルダにファイルのアップロード
- Drive > マイドライブ - ファイルのアップロード
- Drive > マイドライブ - ルートフォルダにファイルのアップロード
- Sharedrive > 共有ドライブ - ファイルのアップロード
- Sharedrive > 共有ドライブ - ルートフォルダにファイルのアップロード
- Board > 投稿の添付ファイル登録
- Board > コメントの添付ファイル登録
Request Method
POST (Content-Type: application/json; charset=UTF-8)
Request Body
パラメータはJSON形式で指定します。
一例として、Bot APIでコンテンツをアップロードする場合のリクエストを記載します。
その他のAPIを利用する際に記載するパラメータについては、それぞれのAPIガイドを参照してください。
Request Body (Bot)
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
fileName | String | Y | ファイル名 |
Request Body Example
{
"fileName": "uploadfile.jpg"
}
Response
呼び出しに成功すると、ファイルのアップロードURLを返します。
パラメータ | タイプ | 説明 |
---|---|---|
uploadUrl | String | ファイルのアップロードURL |
Response Example
{
"uploadUrl": "http://apis-storage.worksmobile.com/k/emsg/r/jp1/1648632512537498188.1648718912.1.3437109.0.0.0/uploadfile.jpg"
}
1-2. ファイルのアップロードを実行
取得したファイルのアップロードURLにファイルをアップロードします。
Request URL
取得したファイルのアップロードURL
HTTP Method
POST (Content-Type: multipart/form-data; boundary="$boundary”)
Request Example
POST k/emsg/r/jp1/1648632512537498188.1648718912.1.3437109.0.0.0/uploadfile.jpg HTTP/1.1
Host: apis-storage.worksmobile.com
Authorization: Bearer ...
Content-Length: 223
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="Filedata"; filename="uploadfile.jpg"
Content-Type: image/jpeg
(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW--
Request Example(CURL)
curl -XPOST 'http://apis-storage.worksmobile.com/k/emsg/r/jp1/1648632512537498188.1648718912.1.3437109.0.0.0/uploadfile.jpg' \
-H 'Authorization: Bearer ...' \
-H 'Content-Type: multipart/form-data' \
-F 'resourceName=uploadfile.jpg' \
-F 'FileData=@uploadfile.jpg
Response
アップロードに成功すると、HTTP Status Code 200番台を返し、応答内容はJSON形式で返されます。
応答に含まれるプロパティは、アップロード先のサービスにより異なります。
Response Body (Bot / Contact / User / Board)
パラメータ | タイプ | 説明 |
---|---|---|
fileId | String | ファイルID |
fileName | String | ファイル名 |
fileSize | Integer | ファイルサイズ |
Response Body (Group / Drive / Sharedrive)
パラメータ | タイプ | 説明 |
---|---|---|
fileId | String | ファイルID |
fileName | String | ファイル名 |
fileSize | Integer | ファイルサイズ |
parentFileId | String | 親フォルダのファイルID |
accessedTime | String | 最終アクセス日時 |
createdTime | String | 作成日時 |
filePath | String | ファイルパス |
fileType | String | ファイルタイプ |
hasPermission | Boolean | 権限設定有無 |
permissionRootFileId | String | 権限ルートフォルダのファイルID |
resourceLocation | Integer | リソースの位置コード |
statuses | Array(String) | ファイル状態 |
modifiedTime | String | 修正日時 |
Response Example
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 120
{
"fileId": "jp1.1648634296934279638.1648720696.1.3437109.0.0.0",
"fileName": "uploadfile.jpg",
"fileSize": "11"
}
2. ファイルのダウンロード
ファイルをダウンロードするフローは以下の通りです。
- ファイルのダウンロードURLの取得
- ファイルのダウンロードを実行
2-1. ファイルのダウンロードURLの取得
各リソースのファイルのダウンロードAPIを使用して、ファイルのダウンロードURLを取得します。
Request URL
APIオペレーションのごとに、Request URLと、指定する必要のあるパラメータが異なります。詳細はそれぞれのAPIガイドを参照してください。
- Bot > コンテンツダウンロード
- Contact > 連絡先写真の取得
- User > ユーザーの写真取得
- Group > チーム/グループ - ファイルのダウンロード
- Group > チーム/グループ - 指定バージョンのファイルのダウンロード
- Drive > マイドライブ - ファイルのダウンロード
- Drive > マイドライブ - 指定バージョンのファイルのダウンロード
- Sharedrive > 共有ドライブ - ファイルのダウンロード
- Sharedrive > 共有ドライブ - 指定バージョンのファイルのダウンロード
- Board > 投稿の添付ファイル取得
- Board > コメントのファイル取得
- Audit > 監査データのダウンロード
Request Method
GET
パラメータの指定
パラメータはPath内に記載します。
一例として、Bot APIでコンテンツを取得する場合に指定する必要のあるパラメータを記載します。
その他のAPIを利用する際に指定するパラメータについては、それぞれのAPIガイドを参照してください。
Path Parameter (Bot)
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
fileId | String | Y | ファイル ID |
botId | integer | Y | Bot ID |
Response
呼び出しに成功すると、HTTP Status Code 302、HTTP Locationレスポンス ヘッダーにダウンロードURLが返されます。
Response example
HTTP/1.1 302 Found
Location: https://apis-storage.worksmobile.com/jp1.1628695315008671000.1628781715.0.1000001.0.0.0
2-2. ファイルのダウンロードを実行
HTTP Locationレスポンス ヘッダーで示されるダウンロードURLにアクセスし、ダウンロードを実行します。
Request Example(CURL)
curl -XGET 'https://apis-storage.worksmobile.com/jp1.1628695315008671000.1628781715.0.1000001.0.0.0' \
-H 'Authorization: Bearer ...'
HTTP/1.1 200 OK
Content-Type: image/jpeg
Content-Length: 11
(FileData)