我在Filepicker中设置了应用程序。此应用程序直接上传到我的S3存储桶。最初的pickAndStore()函数运行良好。后续转换功能始终失败,并显示403错误“无法使用请求的参数转换FPFile”。我有以下代码:
try {
filepicker.setKey(apiKey);
filepicker.pickAndStore(
{
extensions : [ '.jpg','.jpeg','.gif','.png' ],
container : 'modal',
services : [ 'COMPUTER', 'WEBCAM', 'PICASA', 'INSTAGRAM', 'FACEBOOK', 'DROPBOX' ],
policy : policy,
signature : signature,
},
{
location : 'S3',
multiple : false,
path : path,
},
function(InkBlobs){
filepicker.convert(
InkBlobs[0],
{
width : 150,
height : 150,
fit : 'max',
align : 'faces',
format : 'png',
policy : policy,
signature : signature,
},
{
location : 'S3',
path : response.path + fileName + '.png',
},
function(InkBlob) {
console.log(InkBlob);
},
function(FPError) {
console.log(FPError);
}
);
},
function(InkBlobs){
console.log(JSON.stringify(InkBlobs));
}
);
} catch (e) {
console.log(e.toString());
}
始终调用错误处理函数。原始POST响应是......
...附上我的其他凭据。调试处理程序返回前面提到的消息,其中moreInfo参数指向一个URL“https://developers.filepicker.io/answers/jsErrors/142”,其中没有关于错误的内容。
我认为问题可能是直接使用S3意味着文件不存在于Filepicker系统上进行转换。我尝试使用标准的pick()函数,没有任何S3上传,然后转换生成的InkBlob。这产生了完全相同的错误消息。
任何帮助都将不胜感激。
答案 0 :(得分:0)
在这种情况下,错误在于使用faces和fit max。使用面部时,您只能设置适合裁剪。
上面命令中的解释是找到面部,但设置图像以适应最大允许尺寸。
答案 1 :(得分:0)
尝试删除政策中的“路径”选项。
指定策略中的路径适用于pickAndStore(),但如果在策略中指定转换路径,则filepicker会在解决转换参数时出现403错误。似乎API不知道它是源路径还是目标路径。