我现在有一个私有资源的office文档,test.ppt,需要转换成pdf,然后转换成jpg。
转换pdf的URL如下:
http://my-bucket-name.qiniudn.com/bbbbbbb/test.ppt?odconv/pdf
然后我需要把产生的pdf持久化,试了pfop, 提交请求返回了200,但是去查处理状态,一直是等待处理,两个小时还是如此。
然后又试了同步的saveas,按照saveas的文档,产生了saveas and sign,URL如下:
my-bucket-name.qiniudn.com/bbbbbbb/test.ppt?odconv/pdf|saveas/dGVtcC1jbG91ZDNlZHUtY29tOmJiYmJiYmIvdGVzdHBwdC5wZGY=/sign/MY-ACCESS-KEY:TWVVVkkzLzhEMUtPVndKN25nM29lWElXTnZNPQ==
因为是私有资源,我的理解是要对整个URL,而不仅仅是加saveas之前的URL,进行下载凭证处理。文档在这个地方很不清楚。所以又按照下载凭证的文档产生了下载token,因为是在nodejs环境下,用了如下七牛SDK methods:
baseUrl = qiniu.rs.makeBaseUrl domain, newKey
policy = new qiniu.rs.GetPolicy()
realUrl = policy.makeRequest baseUrl
domain是my-bucket-name.qiniudn.com部分,key是:
bbbbbbb/test.ppt?odconv/pdf|saveas/dGVtcC1jbG91ZDNlZHUtY29tOmJiYmJiYmIvdGVzdHBwdC5wZGY=/sign/MY-ACCESS-KEY:TWVVVkkzLzhEMUtPVndKN25nM29lWElXTnZNPQ==
产生的realUrl是:
http://my-bucket-name.qiniudn.com/bbbbbbb%2Ftestppt.ppt%3Fodconv%2Fpdf%7Csaveas%2FdGVtcC1jbG91ZDNlZHUtY29tOmJiYmJiYmIvdGVzdHBwdC5wZGY%3D%2Fsign%2FMY-ACCESS-KEY%3ATWVVVkkzLzhEMUtPVndKN25nM29lWElXTnZNPQ%3D%3D?e=1407404146&token=X7X:O6p2qYO5VJwf9mUo9Qe4AWpXJoE=
注意URL里面的key部分已经被encoding过了。然后再http get这个URL,返回404.
有几个问题:
1. 对私有资源,做office文档处理的时候,是先做saveas和sign,还是先生成下载凭证再添加saveas部分?
2. 最后http get时候的URL到底是用URLencoding过的还是没有encoding的?
谢谢!