你是对的 - 如果你配置了 S3,那么如果你执行 pick() 然后 store() 之后,你最终会得到 2 个文件。
pick() 创建的文件将位于 S3 存储桶的根级别。
我没有找到避免这种情况的方法,所以我使用 pick()、store() 和 remove() 运行 - 因为这些是您需要嵌套它们的异步函数,或者(更好)使用你的选择。
如果你不需要在 pick() 和 store() 之间做任何事情,那么你可以做 pickAndStore(),如果你在做 store() 请求之前需要来自 pick() 调用的信息,请看这个例子下面:
var file;
// authenticate
filepicker.setKey('YOUR_API_KEY');
// pick
filepicker.pick({
container : 'modal',
debug : false,
extensions : ['.png', '.jpg', '.jpeg', '.gif'],
folders : false,
language : 'en',
maxFiles : 1,
maxSize : '2560*1600',
multiple : false,
openTo : 'COMPUTER',
services : [
'BOX',
'COMPUTER'
]
}, function(res) {
// save blob, to remove it later
file = res;
// store
filepicker.store(file, {
access : 'public',
container : 'YOUR_BUCKET',
location : 'S3',
path : 'SOME_FOLDER/ANOTHER_FOLDER/FILENAME.png'
}, function(res) {
// remove
filepicker.remove(file, function() {
console.log('ok')
});
});
});