ファイルアップロード / ダウンロード

    Botのコンテンツ、Drive、ユーザー、アドレス帳などで利用するファイルをアップロードまたはダウンロードする方法について説明します。

    ファイルのアップロード

    ファイルをアップロードするフローは、以下の通りです。

    1. ファイルのアップロードURLの取得
    2. ファイルのアップロードを実行

    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"
    }
    

    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"
    }
    

    ファイルのダウンロード

    ファイルをダウンロードするフローは以下の通りです。

    1. ファイルのダウンロードURLの取得
    2. ファイルのダウンロードを実行

    1. ファイルのダウンロードURLの取得

    各リソースのファイルのダウンロードAPIを使用して、ファイルのダウンロードURLを取得します。

    Request URL

    APIオペレーションのごとに、Request URLと、指定する必要のあるパラメータが異なります。詳細はそれぞれのAPIガイドを参照してください。

    • Bot > コンテンツダウンロード
    • Contact > 連絡先写真の取得
    • User > ユーザーの写真取得
    • Group > チーム/グループ - ファイルのダウンロード
    • Group > チーム/グループ - 指定バージョンのファイルのダウンロード
    • Drive > マイドライブ - ファイルのダウンロード
    • Drive > マイドライブ - 指定バージョンのファイルのダウンロード
    • Sharedrive > 共有ドライブ - ファイルのダウンロード
    • Sharedrive > 共有ドライブ - 指定バージョンのファイルのダウンロード
    • Board > 投稿の添付ファイル取得
    • Board > コメントのファイル取得

    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. ファイルのダウンロードを実行

    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)