如何通过curl发布文件(在这种情况下为图像)上传到活动存储?文档没有说明如何使用curl或JS(例如Axios)

像这样的东西(如果我关闭真实性令牌( skip_before_action :verify_authenticity_token )):

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST -d '{"image": {"user_id":"1"}}' http://localhost:3000/images.json

这将像正常的curl JSON请求一样按预期发布 .

像这样在base64中编码文件看起来很有希望:

(echo -n '{"image": {"user_id":"1", "picture":"'; base64 /Users/cj/Desktop/DesktopArchive/5vvyo4u8y8wz.jpg; echo '"}}') | curl -v -H "Content-Type: application/json" -H 'Accept: application/json' -X POST -d @-  http://localhost:3000/images.json

虽然我上传了 ActiveSupport::MessageVerifier::InvalidSignature . 我怀疑base64不是正确的签名 . 我应该使用什么来编码要上传到活动存储的图像?

编辑:

不是通过JSON,而是通过表单工作:

curl \
   -F "image[user_id]=1" \
   -F "image[picture]=@/Users/cj/Desktop/DesktopArchive/5vvyo4u8y8wz.jpg" \
   http://localhost:3000/images

但是,你是如何通过json调用来完成的,这样可以通过Axios或其他东西完成?