ファイルのアップロードができない

DPCTEST

2021.10.20既読 2721

Pythonプログラムの中で、ファイルのアップロードAPIを実行したところ、

レスポンスコードが200にも関わらず、

Driveを見に行くとファイルがアップロードされてませんでした。

file_dataには画像のデータ(bytes型)を入れています。

原因が不明なので、大変困っております。

def upload_file(resource_location, to_parent_key, resource_name, file_data):
    url = "https://file.drive.worksmobile.com/drive/rl/{}/v2/files".format(
        resource_location)
      
    data = {
        'toParentKey': to_parent_key,
        'resourceName': resource_name
    }
    files = {
        'Filedata': file_data
    }
headers = {
        'consumerKey': 'service_consumer_key',
        'Authorization': 'Bearer service_token',
        'X-DRIVE-API-TYPE': 'reseller-api'
    }
    response = requests.post(
        url, headers=headers, data=data, files=files
    )

コメント2

  • 업데이트 된 답글입니다.

    佐藤正宗

    Postman では正常にアップロードできたので、サーバー側のエラーではなさそうですね。

    Postman のサンプルコード貼り付けておきますので、ご参考になればー。
    ------------------------------------------
    import requests

    url = "https://file.drive.worksmobile.com/drive/rl/xxxxx/v2/files?resourceName=drive_test.xlsx&toParentKey=xxxxx";

    payload={}
    files=[
     ('Filedata',('テスト用のエクセル.xlsx',open('/C:/Users/xxxxx/TEST/テスト用のエクセル.xlsx','rb'),'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'))
    ]
    headers = {
     'consumerKey': 'xxxxx',
     'X-DRIVE-API-TYPE': 'reseller-api',
     'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    }

    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    print(response.text)

    2021.10.22

    1
  • 업데이트 된 답글입니다.

    DPCTEST 投稿者

    コメントありがとうございました!
    確かに、Postmanではうまくいくのでコードに問題があると思います。
    ご提示いただいたサンプルコードでもう一度試してみます。

    2021.10.25

    0
前の投稿 組織のファイルリストが取得できない
次の投稿App Link - Driveのフォルダ指定について
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。