新規投稿
フォローする

Kintoneの異なるドメイン間でのFileのダウンロード/アップロード

異なる2つのドメイン間でFileの受け渡しをしたいと考えております。
具体的にはKintoneのドメインAでRest APIを用いて、ドメインAのファイルをドメインBにアップロードしたいと思っています。

ことなるドメイン間でのRest APIの発行はKintone Proxyしか対応していないとお聞きしましたが、Kintone Proxyでのファイルのアップロード方法をご教授いただけないでしょうか。

以上、よろしくお願いします。

0

6件のコメント

Avatar
Ryu Yamashita

Akira Takahashi さん

まず、イメージファイルについてはダウンロードでブラウザが固まり、断念したことが有ります。テキストファイルは大丈夫でした。

周知の通りkintone.proxy()は、ボディに文字列かオブジェクトを指定することになりますが、オブジェクトは事実上JSONオブジェクトになります。

ここで、ファイルアップロードについてはkintone.proxy()のFormDataオブジェクトへの対応がないのでちょっと苦しいです。テキストファイルはドキュメントのリクエスト例の様に記述してあげることで出来ます。(ヘッダのContent-Lengthは不要で、ボディはboundaryで挟む文字列で記述します)

ダウンロードもfileKeyをクエリで指定してリクエストすることで、テキストファイルの中身が返ってきます。

1
Avatar
Akira Takahashi

Ryu Yamashitaさん

返信が遅くなり申し訳ありません。

確認させて欲しいのですがKintone.proxy()でも、テキストファイルならクロスドメインでアップロードが可能ということでしょうか。
また、その際の記述方法が分かりません。特にボディの部分が分からないので、よろしければご教授頂ければと思います。

以上、よろしくお願いします。

0
Avatar
Akira Takahashi

Ryu Yamashitaさん

何度か試しましたが、やはりエラーになります。
ソースを記載します。
問題点をお教え頂ければ幸いです。

var auth = window.btoa(<LOGIN_NAME> + ':' + <PASSWORD>);
var header = {
"X-Cybozu-Authorization": auth,
"Content-Type”: “multipart/form-data; boundary=---------------------------bee48a285354"
};

var params = “-----------------------------bee48a285354\n
Content-Disposition: form-data; name=\"file\"; filename=\”test.txt\”\nContent-Type: text/plain\n\n
test\n\n
-----------------------------bee48a285354--\n";

return kintone.proxy(<URL> + '/k/v1/file.json', 'POST', header , params).then(function(args) {
var resp = JSON.parse(args[0]);
console.log(resp);
return resp;
}, function(error){
console.log(error);
});

 

以上、よろしくお願いします。

0
Avatar
Ryu Yamashita

ひとつ前の分、見落としていました。失礼いたしました。

こんな感じで出来ていたかと思います。

var url = 'https://subdomain.cybozu.com/k/v1/file.json';
var params;
var boundary = '---------------------------20111107kintone20111107cybozucom';

var body = 'text';

params = '--' + boundary + '\r\n' + 'Content-Disposition: form-data; name="file"; filename="' + 'your_filename' + '"\r\nContent-Type: text/javascript\r\n\r\n' + body + '\r\n' + '--' + boundary + '--';


kintone.proxy(url, 'POST', {
'X-Cybozu-Authorization': 'authToken',
'Authorization': 'Basic ' + 'basiToken',
'Content-Type': 'multipart/form-data; boundary=' + boundary
}, params);

0
Avatar
Akira Takahashi

Ryu Yamashitaさん

ご教授ありがとうございます。

ファイルのアップロードに成功しました。

改行コードが悪かったようです。

助かりました。

また何かありましたらよろしくお願いします。

0
Avatar
Ryu Yamashita

解決されたようで幸いです。

0
サインインしてコメントを残してください。