我正在尝试使用curl将图像发送到设备。
这是代码:

#!/bin/bash
curl --header 'Access-Token: d78sdf8bd8bv6d98bd7d6df6b' \
     --header 'Content-Type: application/json' \
     --data-binary '{"type":"file","title":"Test IMG SEND","body":"Sending Dragon from Debian 8","file_name":"dr1.jpg","file_type":"image/jpeg","file_url":"https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg"}' \
     --request POST \
     https://api.pushbullet.com/v2/pushes

这是我从上一次上传中得到的:
{"data":{"acl":"public-read","awsaccesskeyid":"JSUH(=Y£GhHUIOG898787","content-type":"image/jpeg","key":"HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg","policy":"ecvjksdblvuio3ghuv393783230cgfgsaidfg3","signature":"hjveirvhj34veupiv34'vvg3vg78"},"file_name":"dr1.jpg","file_type":"image/jpeg","file_url":"https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg","upload_url":"https://upload.pushbullet.com/upload-legacy/yVayDlcd

对我来说,这似乎还可以,但显然有问题。谁能指出我的解决方案?

编辑:
抱歉,问题是来自pushbullet的答案是“param'file_url'具有无效的值”,我无法理解问题出在哪里,因为我只是从先前的答案中复制了file_url上传请求,应该是-> file_url“:” https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg ...

最佳答案

对于file_url请求实际上无效的地方,这个错误尚不清楚。应该说的是,“您指定的文件url指向尚不存在的文件”。换句话说,在链接到文件之前,您需要确保首先真正上传了文件。

他们的文档不是很好。我遇到了同样的问题,最后偶然发现了答案。这实际上是一个三部分的过程:

1)POST https://api.pushbullet.com/v2/upload-request –尚不明显,但这是请求访问权限以将文件上传到Push Bullet的AWS S3 Bucket。在响应中使用data进行下一步。

2)POST https://upload.pushbullet.com/upload-legacy/yVayDlcd –(这应该是步骤1中upload_url的值)data对象中的所有内容都应与文件一起发布到响应中的upload_url中。预期响应应为无内容的204。这意味着它成功了。

3)POST https://api.pushbullet.com/v2/pushes –现在文件已经存在于Push Bullet的系统中,您可以使用步骤1中的file_url值进行推送。

希望这种解释可以使他们的文档更加清晰。

09-28 11:34