koyama
1
◯やりたいこと
bubbleでgoogle cloud storageにファイルをアップロードしたい。
◯現状、問題点
認証は出来ました。
しかし、
1.ドキュメント(Objects: insert | Cloud Storage | Google Cloud)にはContent-Lengthをヘッダーに含める必要があると記述があったのですが、どう計算してその値を入れればいいのか分かりません(100にしてみたところESOCKETTIMEDOUTになりました。)
2.そのドキュメントを見ても、ファイルをどうやって指定してアップロードすればいいのか分かりませんでした。試しにcontentDispositionにbubble上のファイル名を入れてみても上手くいきませんでした。
3.Content-Typeをimage/jpegにしても、実際にアップロードされたオブジェクトのタイプはapplication/jsonでした。
今のところ、下のスクリーンショットのような状態です(アクセストークン等は隠しています)。
説明が分かりにくかったらすみません。どうかお助けください。
よろしくお願いいたしますm(__)m
Qiita の記事を見ると、ファイルはbodyに入れる方法があるようです。
Body typeをForm-dataにしてはどうでしょうか?
curlでアップロードする方法を試してみて、それをAPI Connectorに書き直すのがよいかと思います
「いいね!」 2
koyama
3
@jansnap さん
ご返信ありがとうございます。
知識不足ですみません。
Form-dataは、ファイルをアップロードしたいときに使うものという認識で正しいですかね。
あとその記事を見ると、
–data-binary @${OBJECT}
(OBJECTはアップロードしたいファイルのローカルパス)
と書かれているのですが、これでファイルをアップロードするのですよね。
これはAPIコネクターではどのように記述すればいいのでしょうか
keyとvalueに何を入れるべきなのか、そしてbubbleにアップロードされたファイルの指定方法が分かりませんでした(そもそもこの私の考え方自体間違っているのでしょうか)。
勉強不足ですみません。検索しても引っかからず…
よろしくお願いいたします。
よく調べずに返信してしまってすみません。
Body typeを「From-data」にするとファイルが送信できるのですが、
パラメタのkey名をどうすればいいか分かりませんでした
公式サイトにファイルアップロードに関する記載はありますが、
フォーラムでは未サポートと言っている人がいます。
お役に立てずすみません。。。
POSTのbodyではなくパラメタでファイルを渡すなら、Body typeを「Form-data」にすると、「Send file」という形式が選べるようになります。
「いいね!」 1
APIコネクタだけでは難しいケースと思います。
Bubbleのみで実現する場合は、PluginとしてServerSide開発が必要になるかと。
Node.jsでGoogleが提供しているnpmパッケージを読み込んで開発となります・・・。
比較的簡単に実現しようとすると、Integromat(現Make)などのiPaas環境を間に挟んであげることで簡易に実現可能です。
この場合、Integromat側でGCS向けの接続設定を作り、BubbleからIntegromatのWebhookの口に向かってファイルを送信し、IntegormatでGCSにUPする形となります。
「いいね!」 2
koyama
6
jansnapさん、yukikunさん、本当にありがとうございます!!
とても勉強になりました。
makeを使うのは完全に盲点でした。やってみます!