異なる2つのドメイン間でFileの受け渡しをしたいと考えております。
具体的にはKintoneのドメインAでRest APIを用いて、ドメインAのファイルをドメインBにアップロードしたいと思っています。
ことなるドメイン間でのRest APIの発行はKintone Proxyしか対応していないとお聞きしましたが、Kintone Proxyでのファイルのアップロード方法をご教授いただけないでしょうか。
以上、よろしくお願いします。
異なる2つのドメイン間でFileの受け渡しをしたいと考えております。
具体的にはKintoneのドメインAでRest APIを用いて、ドメインAのファイルをドメインBにアップロードしたいと思っています。
ことなるドメイン間でのRest APIの発行はKintone Proxyしか対応していないとお聞きしましたが、Kintone Proxyでのファイルのアップロード方法をご教授いただけないでしょうか。
以上、よろしくお願いします。
Akira Takahashi さん
まず、イメージファイルについてはダウンロードでブラウザが固まり、断念したことが有ります。テキストファイルは大丈夫でした。
周知の通りkintone.proxy()は、ボディに文字列かオブジェクトを指定することになりますが、オブジェクトは事実上JSONオブジェクトになります。
ここで、ファイルアップロードについてはkintone.proxy()のFormDataオブジェクトへの対応がないのでちょっと苦しいです。テキストファイルはドキュメントのリクエスト例の様に記述してあげることで出来ます。(ヘッダのContent-Lengthは不要で、ボディはboundaryで挟む文字列で記述します)
ダウンロードもfileKeyをクエリで指定してリクエストすることで、テキストファイルの中身が返ってきます。
Ryu Yamashitaさん
返信が遅くなり申し訳ありません。
確認させて欲しいのですがKintone.proxy()でも、テキストファイルならクロスドメインでアップロードが可能ということでしょうか。
また、その際の記述方法が分かりません。特にボディの部分が分からないので、よろしければご教授頂ければと思います。
以上、よろしくお願いします。
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
Content-Disposition: form-data; name=\"file\"; filename=\”test.txt\”Content-Type: text/plain
test
-----------------------------bee48a285354--";
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);
});
以上、よろしくお願いします。
ひとつ前の分、見落としていました。失礼いたしました。
こんな感じで出来ていたかと思います。
var url = ‘https://subdomain.cybozu.com/k/v1/file.json’;
var params;
var boundary = ‘---------------------------20111107kintone20111107cybozucom’;
var body = ‘text’;
params = ‘–’ + boundary + ‘\r’ + ‘Content-Disposition: form-data; name=“file”; filename="’ + ‘your_filename’ + ‘"\rContent-Type: text/javascript\r\r’ + body + ‘\r’ + ‘–’ + boundary + ‘–’;
kintone.proxy(url, ‘POST’, {
‘X-Cybozu-Authorization’: ‘authToken’,
‘Authorization’: 'Basic ’ + ‘basiToken’,
‘Content-Type’: ‘multipart/form-data; boundary=’ + boundary
}, params);
Ryu Yamashitaさん
ご教授ありがとうございます。
ファイルのアップロードに成功しました。
改行コードが悪かったようです。
助かりました。
また何かありましたらよろしくお願いします。
解決されたようで幸いです。