以下の例のようなcurlコマンドをAPIコネクターを通じて実行したいと思っています。 その際、bod......

以下の例のようなcurlコマンドをAPIコネクターを通じて実行したいと思っています。
その際、bodyはどのような形になるでしょうか?
なお、以下の例のsample.jpgにあたるバイナリデータはテキスト形式で保持しております。

curl -X PUT
-H “Content-MD5: <計算したcontentMd5の値>”
-T ‘sample.jpg’
‘<uploadUrlの値>’

参考
https://docs.anymotion.jp/file_upload.html

回答者
以下がリクエスト例です。sample.jpgはあえて分かりやすいようにテキストデータにしています。見ていただくと分かりますがBody部分には画像のバイナリデータがそのまま送られます。Bubble上ではBody TypeがJSONまたはFormDataとなっているのでバイナリデータのまま送信できるかどうかは微妙なところです。。。
$ curl -X PUT
-H “Content-MD5: DummyMD5”
-T ‘sample.jpg’
http://example.com

PUT http://example.com/sample.jpg HTTP/1.1
Host: example.com
Content-MD5: DummyMD5
Content-Length: 11
binarydata

質問者
あめぞうさん、ご丁寧に本当にありがとうございます!!
なるほど、body部分ではバイナリデータを直接送るのですね。
たしかにbubbleのAPI connectorだと難しいような気がしますね・・・
-TオプションはAPI側のドキュメントに記載されてあるサンプルコードなのですが、例えば-Fオプションや-dオプションとしてリクエストすることでこちらは回避できるものなのでしょうか?
参考

http://sweng.web.fc2.com/ja/program/shellscript/curl.html

回答者
Curl側のオプションは特に気にしなくて良いです。気にすべきなのはAnymotion側がどの「Content-Type」を期待して処理するかだけなので。
そしてBubbleのJSON形式は「Content-Type: application/json」Form-Dataは「Content-Type: application/x-www-form-urlencoded」をヘッダーを付与してデータを送信します。
僕の上記サンプルではそもそも「Content-Type」すら指定されてないので、それを指定した際にどのような挙動を示すかをAnymotion側で確認すべきかな、と。
Postmanで色々と確認できますよ!

質問者
ありがとうございます!
オプションは気にするところではなく、またサンプルコードに記述されていないヘッダーを付与しても良いんですね・・・
ネットワーク基礎知識をもっとつけなければと痛感します:man-facepalming:
現状postmanで動画をアップロードする際に以下の写真のようにヘッダーのContent-MD5に誤りがあるという表示が出るので、まずはそこをなんとか解決させてからAnymotion側の挙動の確認に移れたらと思います!
またその際に色々とお聞きすると思いますが、よろしくお願いいたします!

追記
MD5をbase64にエンコードすると22文字に2文字のパッティングが追加されるとの記述をみたので(参考)、現状の値は正しくMD5の値をbase64でエンコードできていないということなのでしょうか?

回答者
復号化(base64->md5)した値を渡すので大丈夫なはずですよ。問題はmd5の値はアップロードするファイルのデータに欠損が無いことが求められます。
手順を確認するためだけに「hello」のようなテキストデータで試してみてはいかがでしょう。

質問者
md5の値はアップロードするファイルのデータに欠損が無いことが求められます。
これはAPI側でバイナリファイルとMD5の示すものが一致しているかを確認されているということでしょうか?
現状step2の動画登録の際のbodyに記載するMD5とstep3のヘッダーに記載するMD5は同じ値(hello)に設定しているのですが、同じエラーとなります。
あめぞうさんが仰る手順の確認は、これとは異なる作業を指しているのでしょうか?

回答者
Helloと言うテキストコンテンツをmd5で計算すると言う意味です。

質問者
Helloを変換したものを使ったのですが、The Content-MD5 you specified was invalidの表示が出るんですよね

新境地に入りました・・・
bubble側で取り出したtext型のバイナリデータをブラウザで検索したページでMD5化→base64でエンコードした値を載せるとこうなりました・・・
The Content-MD5 you specified did not match what we receivedというのはその前のstepの動画登録に記載したContent-MD5と一致していないという意味合いなのでしょうか?

bodyをrawにしてバイナリデータを送信すると200 OKとなったのですが、レスポンスが表示されないのでこれではよろしくないですよね?

回答者
バイナリデータは01のテキストデータではなくファイルを直接送らないと意味がないですよ…。

質問者
これだとただtextデータを送っただけということなんですね…
なるほどです:man-facepalming:
ありがとうございます!!