Driveへのファイルアップロード
【APIを使用してのファイルのアップロード方法】
1.個人のローカルに存在するファイルを個人のDriveへアップロードすることは可能でしょうか。
可能な場合、RequestURL「https://file.drive.worksmobile.com/drive/rl/{resourceLocation}/v2/files」の{resourceLocation}には何を設定する必要があるのでしょうか。
2.上記の応用でグループDriveにファイルをアップロードすることは可能でしょうか。
3.アップロードするファイルの拡張子に制限はありますでしょうか。
初心者で何も分からない状態です。
コミュニティで上記内容の質問を探してみたのですが、見つからず困っております。
お分かりの方がいらっしゃいましたら、お教え願います。
投稿に新しいコメントが追加されましたら通知を送信します。
コメント14
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
1:
Filedata をローカルのパスで指定すれば、ローカルファイルをアップロードすることが可能です。
resourceLocation につきましては下記ページの API 共通情報の項目を参考に設定を行ってください。
https://developers.worksmobile.com/jp/document/1008001?lang=ja
2:
グループフォルダにアップロードするには toParentKey にグループフォルダの resourceKey を指定します。
resourceKey はグループフォルダのリストの閲覧 API で取得できます。
https://developers.worksmobile.com/jp/document/1008019?lang=ja
ただし、Service API Access Token を発行したユーザがグループに所属している必要があります。
3:
アップロードするファイルの拡張子制限につきましては、管理者画面での設定が反映されます。
https://guide.worksmobile.com/ja/admin/pc-admin-guide/security/file-security/
2020.06.02
업데이트 된 답글입니다.
orita 投稿者
ファイルアップロードの際に、
「userid not exist」のエラーが発生するのですが、
原因が分かりません。
LINEWORKSにユーザー自体は存在するのですが、何が原因として考えられますでしょうか。
2020.06.04
업데이트 된 답글입니다.
orita 投稿者
URL:https://file.drive.worksmobile.com/drive/rl/{resourceLocation}/drive/v2/files/root}/v2/files
(「https://apis.worksmobile.com/r/{API ID}/drive/v2/files/root」で取得したresourceLocationを使用)
X-DRIVE-API-TYPE:reseller-api
ConsumerKey:[ConsumerKey]
Authorization:Bearer [Service Token]
Content-Type:multipart/form-data; boundary="Abcdefg”; charset=UTF-8
--Abcdefg
Content-Disposition: form-data; name="toParentKey"
[resourceLocationと一緒に取得したresourceKey]
--Abcdefg
Content-Disposition: form-data; name="resourceName"
test.txt
--Abcdefg
Content-Disposition: form-data; name="writeMode"
none
--Abcdefg
Content-Disposition: form-data; name="Filedata"; filename="test.txt"
Content-Type: text/plain; charset=UTF-8
aaaa
--Abcdefg--
2020.06.05
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
Raw-FileData
--$boundary
Content-Disposition: form-data; name="Filedata"; filename="/C:/Users/xxxxx/Desktop/test.xlsx"
userid not exist error ですが、アカウントが有効になっていない可能性がございます。
対象のアカウントでログインし、サービスの利用を開始してからお試しください。
2020.06.09
업데이트 된 답글입니다.
orita 投稿者
Content-Disposition: form-data; name="Filedata"; filename="test.txt"
Content-Type: text/plain; charset=UTF-8
aaaa
--$boundary--
ここが、
--$boundary
Content-Disposition: form-data; name="Filedata"; filename="/C:/Users/xxxxx/Desktop/test.xlsx"
--$boundary--
上記の状態で可能という認識で相違ないでしょうか。
また、userid not exist に関しては、
対象アカウントでログインし、サービスの利用開始は完了している状態で実行しております。
2020.06.09
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
Drive へのファイルアップロード API を利用する際の、Http Method をご確認いただけますでしょうか。
ファイルのアップロード API は POST 形式で、Content-Type は multipart/form-data になります。
https://developers.worksmobile.com/jp/document/1008037?lang=ja
また、Header 情報の consumerKey と authorization token の設定も合わせてご確認ください。
https://developers.worksmobile.com/jp/document/3002003?lang=ja
2020.06.09
업데이트 된 답글입니다.
orita 投稿者
及び、ファイルのアップロード API は POST 形式で、Content-Type は multipart/form-dataについて確認しましたが、
問題ないかと思います。
また、Header 情報の consumerKey と authorization tokenも問題ないかと思います。
ファイルダウンロード等は可能で、ファイルのアップロードのみ上記事象が起こる状態です。
2020.06.09
업데이트 된 답글입니다.
orita 投稿者
EXCELファイルやPDFファイル等をアップしたところ、中身が壊れているようで正しく表示されません。
各アップロードファイルに合わせてBODY部分のContent-Type(下記参照)を変更して
アップロードしているのですが、原因がお分かりでしたらお教え願えますでしょうか。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Content-Disposition: form-data; name="Filedata"; filename="ファイル名"
Content-Type: 各ファイルに合わせたContent-Typeを設定
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ちなみに、
各ファイルデータはBINARYデータにしてアップロードしています。
CSVファイルはcharsetを設定したことで正しくアップロードできました。
2020.07.16
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
以下の事項をお試しください。
ファイルをバイナリデータに変換せず、そのままアップロードをお試しください。
resourceName で Content-Type の拡張子を指定しているかどうかをご確認ください。
アップロードするファイルをファイル容量の小さいファイルでお試しください。
また、fileSize パラメータを指定せずにアップロードをお試しください。
2020.07.16
업데이트 된 답글입니다.
orita 投稿者
⇒そのままというのは、filename="/C:/Users/xxxxx/Desktop/test.xlsx"というようにファイルパスを設定する認識でお間違いないでしょうか。
・resourceName で Content-Type の拡張子を指定しているかどうかをご確認ください。
⇒FiledataのContent-Typeはアップロードするファイルに沿って変更しております。
・アップロードするファイルをファイル容量の小さいファイルでお試しください。
⇒試してみましたが、無理でした。
・また、fileSize パラメータを指定せずにアップロードをお試しください。
⇒fileSizeパラメータは指定せずにアップロードしましたが無理でした。
2020.07.17
업데이트 된 답글입니다.
orita 投稿者
設定する際にboundaryに「””」は含まない想定なのですが、もし含んでいた場合、エラーになったりするのでしょうか。
下記、①は不可なのか知りたいです。
実行してみて①の場合にエラーが発生しているのですが、boundaryの設定方法が原因なのか分からないので、
お分かりであればお教えいただきたいです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
①Content-Type:multipart/form-data; boundary=”ABCDE”; charset=UTF-8
②Content-Type:multipart/form-data; boundary=ABCDE; charset=UTF-8
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2020.07.17
업데이트 된 답글입니다.
orita 投稿者
アップロード自体はうまくいって、Drive上でファイル内容の閲覧はできるのですが、
ダウンロードするとファイルが壊れていると表示され、
中身の確認ができません。
Content-Typeは問題ないはずなのですが、原因として何が考えられますでしょうか。
ちなみにEXCELファイルとMP4ファイルをZIPファイルにしてアップロードしたところ、ダウンロードして後にファイルを確認しましたが、
問題なく閲覧できました。
ZIPファイルだと問題ないので、Content-Typeの問題かと思いましたが、特に原因となるようなことは見つかりませんでした。
2020.07.22
업데이트 된 답글입니다.
orita 投稿者
BODY部分の最後の区切り文字の前に改行が2行必要でした。
ファイルをBINARY型で読み込んでおり、
改行1行だとファイルの中身と区切り文字の間が正しく認識されていなかったようです。
2020.07.31
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
解決したとのことで、良かったです。
なお、ダブルクォート(")は boundary に使用できる文字列ではありません。
boundary に使用できる文字列は RFC で定められている MINE 型が使用できる文字列のみとなります。
ユーザ様の記事となりますが、こちらの記事で解説しておりましたのでよろしければご参考ください。
https://qiita.com/kunihiros/items/e11daacfd62d85d83c06
2020.08.03
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。