我试图使用Filepicker.io作为上传器,但为了在有效载荷中为每个文件启动onsuccess事件我正在使用组合.pickMultiple和.store方法。像这样:Filepicker.io - 停止.pickMultiple从自动存储S3桶中的文件
filepicker.pickMultiple(function(fpfiles){
for(var i = 0; i < fpfiles.length; i++){
//Clean the filename
//Check duplicate
//Store the file on S3
filepicker.store(
fpfiles[i].url,
{location: 'S3', path: 'filepicker/' + fpfiles[i].filename},
function(my_uploaded_file){
//Do some other cool stuff ...
}
);
}
});
(这是不是使用.pickAndStore方法,整个有效载荷已完成传输之后才会触发一个事件的onSuccess)
我与此遇到的问题是,似乎以为.pickMultiple方法是'自动奇迹般地'在我的S3存储桶的根目录中保存该文件的副本;所以我最后得到了同一个文件的两个副本。
例如:
如果我上传my_file.png在我的水桶称为图像的文件夹,我应该得到的http://s3.amazonaws.com/my_bucket/IMAGES/my_file.png
这是发生的结果,但我也越来越: http://s3.amazonaws.com/my_bucket/UNIQUE_ID_my_file.png
任何人都知道如何防止.pickMultiple自动将文件添加到我的S3存储桶?
感谢您的任何帮助。
不幸的是,在当前API中,使用.pick()或.pickMultiple()调用调用的任何“本地”上传都会将文件存储在S3存储桶中。这是由于许多依靠此行为上传至S3的传统客户。 .pickAndStore()调用很大程度上是为了解决这个问题而创建的。我知道这并不理想,但如果有必要,可以使用filepicker.remove()调用清理中间文件。 – brettcvz 2013-03-27 05:27:56
嗨布雷特,在我的代码中,我会调用.remove方法吗?我尝试过实现这一点,它打破了除“重复”文件之外的所有功能 - 我试图删除的文件。 – AJB 2013-03-27 20:01:40
在'.store'回调中,但在原始文件 – brettcvz 2013-03-28 00:17:10