关于save接口对私有资源处理的出错疑问?

官方文档为:
http://t-test.qiniudn.com/Ship.jpg?imageView/2/w/200/h/200|saveas/dC10ZXN0OlNoaXAtdGh1bWItMjAwLmpwZw==/sign/iguImegxd6hbwF8J6ij2dlLIgycyU4thjg-xmu9q:38kMkgw3We96NWSgUHJz9C72noQ=

举例,但是我开启原图保护后:
http://t-test.qiniudn.com/Ship.jpg?imageView/2/w/200/h/200
必须加上&e=xxxxx&token=xxxxxx
如此之后再加上save就出现问题了:
http://t-test.qiniudn.com/Ship.jpg?imageView/2/w/200/h/200&e=xxxxx&token=xxxxxx|saveas/dC10ZXN0OlNoaXAtdGh1bWItMjAwLmpwZw==/sign/iguImegxd6hbwF8J6ij2dlLIgycyU4thjg-xmu9q:38kMkgw3We96NWSgUHJz9C72noQ=

{
error: "invalid download token format"
}

难道save接口不支持对私有资源的处理??还是我格式有问题


补充问题:
我们有个应用的原始需求如下:
1 通过自身服务器或者第三方服务器采集图片,存放在云空间
2 对采集回来的图片进行处理

根据上述需求,
1 我们发现七牛提供了一个采集的接口,非常方便我们采集图片,并直接存放在云A空间,减少我们自身服务器处理成本;
2 但是我们要对采集回来的图片,还要进行一些处理,并存放在另外云B空间,因此使用了savea接口

至于老许推荐使用fop持久化,我没有看到这一步,哈哈..
1 不得不佩服七牛之数据处理接口之丰富与强大,还有专业
2 但是七牛的开发文档,对于刚入手的开发者,需要点时间去理解和测试,因为有些接口文档没有太详细的说明,一方面是sdk包没有覆盖全面接口协议,另外一方面,接口协议那边写得很技术协议化
例如:fetch接口,
/fetch//to/

php版本:
这个到底是直接
$url = 'http://su.bdimg.com/static/superpage/img/logo_white.png';
1 $EncodedURL = Qiniu_Encode($url);
2 $EncodedURL = base64_encode($url);

还有header头
Authorization: QBox
这个AccessToken,我昨晚去测了一下也不对
总之fetch接口返回 bad token

$savebucket = 'jz-img';
$savekey = 'test.jpg';
$entryURI = $savebucket . ':' . $savekey; // 保存的路径
$encodedEntryURI = Qiniu_Encode($entryURI); // 对保存路径进行编码

echo "http://iovip.qbox.me/fetch/$EncodedURL/to/$encodedEntryURI";
echo '
';
$signingStr = "/fetch/$EncodedURL/to/$encodedEntryURI";
$sign = Qiniu_Sign(null, $signingStr);
是否等于$sign?

3 fop接口文档里面也没有说明,处理完后是覆盖原图还是可以另存为

最后建议:
1 host,尽量统一:不要iovip.qbox.me,最好都是xx.qiniu.com
2 PHPSDK继续更新;fop.php提供更多类,最好也能支持连贯操作,辛苦了

好吧,我继续看文档,继续测试了

阅读 4.9k
2 个回答

可以交换下试试:

http://t-test.qiniudn.com/Ship.jpg?imageView/2/w/200/h/200|saveas/dC10ZXN0OlNoaXAtdGh1bWItMjAwLmpwZw==/sign/iguImegxd6hbwF8J6ij2dlLIgycyU4thjg-xmu9q:38kMkgw3We96NWSgUHJz9C72noQ=&e=xxxxx&token=xxxxxx

也就是先做saveas,然后再做私有资源的签名。

另外,我想了解下,你为什么需要使用 saveas?可否说下你的原始需求?我们建议客户优先使用持久化 fop:http://developer.qiniu.com/docs/v6/api/overview/fop/persistent-fop.html 。另外 fop 持久化也可以在上传阶段就进行: