Javascript 在dropbox中上载多个图像错误(写入操作太多)

Javascript 在dropbox中上载多个图像错误(写入操作太多),javascript,angularjs,ionic-framework,dropbox,Javascript,Angularjs,Ionic Framework,Dropbox,嗨,我正试图上传一个图像到我的dropbox,它的工作正常,但当我选择一个多图像并上传到dropbox时,一些图像没有上传,错误显示 "{"error_summary": "too_many_write_operations/..", "error": {"reason": {".tag": "too_many_write_operations"}}}" 这是我使用cordovafiletransfer的代码 $cordovaImagePicker.getPictures(optionsS

嗨,我正试图上传一个图像到我的dropbox,它的工作正常,但当我选择一个多图像并上传到dropbox时,一些图像没有上传,错误显示

"{"error_summary": "too_many_write_operations/..", "error": {"reason": {".tag": "too_many_write_operations"}}}"
这是我使用cordovafiletransfer的代码

  $cordovaImagePicker.getPictures(optionsSelectImage)
            .then(function(results) {
                console.log(results)
                for (var i = 0; i < results.length; i++) {
                    // console.log('Image URI: ' + results[i]);
                    var image = results[i];
                    var counter = 0;
                    // var filename =  JSON.stringify(results[i].substr(results[i].lastIndexOf('/') + 1));
                    // console.log(filename)
                    var options = {
                        headers: {
                            'Content-Type': 'application/octet-stream',
                            'Authorization': 'Bearer ACCESS TOKEN',
                            "Dropbox-API-Arg": '{"path": "/photo.jpg", "mode": "add","autorename": true,"mute": false}'
                        }
                    }

                    $cordovaFileTransfer.upload('https://content.dropboxapi.com/2/files/upload', image, options)
                        .then(function(result) {
                            // Success!
                            counter++;
                            if (counter != results.length) {
                                $ionicLoading.show({
                                    //Loading Content
                                    template: '<ion-spinner icon="android"></ion-spinner><br><center>Uploading ' + counter + ' /' + results.length + ' to Dropbox</center>'
                                });

                            }

                            // if number of files uploaded in the dropbox == total number  of queued files for uploading
                            else if (counter === results.length) {
                                $ionicLoading.hide();

                            }

                            console.log(result)

                        }, function(err) {

                            // Error
                            console.log(err)


                        }, function(progress) {

                        });
$cordovaImagePicker.getPictures(选项SelectImage)
.然后(函数(结果){
console.log(结果)
对于(var i=0;i正在将'+计数器+'/'+结果.length+'上载到Dropbox'
});
}
//如果dropbox中上载的文件数==排队等待上载的文件总数
else if(计数器===results.length){
$ionicLoading.hide();
}
console.log(结果)
},函数(err){
//错误
console.log(错误)
},职能(进度){
});

我认为for循环对于这个过程来说太快了,这就是为什么dropbox api无法处理它的原因?我如何才能减慢速度或延迟上传呢?可能您正在同时上传所有图像,更好的解决方案可能是成对或逐个上传图像,链接如下承诺:

var promiseChain = Q.fcall(function() {});
results.forEach(function(filename) {
  var promiseLink = function() {
    var def = Q.defer();
    $cordovaFileTransfer.upload('...', filename).then(function(result) {
      // do stuff
      setTimeout(function(){
        def.resolve();
      }, delay) 
    });
    return def.promise;
  };
  promiseChain = promiseChain.then(promiseLink);
});

promiseChain();

速率限制API限制您的应用程序可以对每个用户进行的调用量。该限制足够高,任何合理使用API的行为都不应接近于达到该限制。达到速率限制的应用程序将收到503错误,该错误使用Retry After标头准确指示何时可以再次开始发出请求。如果您的应用程序允许es OAuth 2.0,错误将是429。如果您继续达到这些限制,请联系我们的开发人员支持团队,我们将与您合作。请注意,
过多的写操作
尤其不是明确的速率限制。从:>过多的写操作无效,用户的Dropbox中会发生过多的写操作。This也称为“锁争用”。您可以在中找到更多信息。