Java Dropbox ChunkedUpload

Java Dropbox ChunkedUpload,java,dropbox,dropbox-api,Java,Dropbox,Dropbox Api,我正在尝试实现分块上传到Dropbox。 我已经根据Dropbox API文档中的示例编写了一段代码,但失败了 以下代码引发该异常: com.dropbox.client2.exception.DropboxIOException:ApacheHttpClient 遇到错误。没有响应,请重试。在 com.dropbox.client2.RESTUtility.execute(未知源)位于 com.dropbox.client2.DropboxAPI$ChunkedUploadRequest.up

我正在尝试实现分块上传到Dropbox。 我已经根据Dropbox API文档中的示例编写了一段代码,但失败了

以下代码引发该异常:

com.dropbox.client2.exception.DropboxIOException:ApacheHttpClient 遇到错误。没有响应,请重试。在 com.dropbox.client2.RESTUtility.execute(未知源)位于 com.dropbox.client2.DropboxAPI$ChunkedUploadRequest.upload(未知 来源)在 com.dropbox.client2.DropboxAPI$ChunkedUploader.upload(未知源) 位于com.dropbox.client2.DropboxAPI$ChunkedUploader.upload(未知 (来源)

代码如下:

/** Uploads content to Dropbox.
 * @param dropbox An already linked dropbox API
 * @param stream The stream to upload
 * @param length The number of bytes to upload
 * @param path The path where to store the uploaded content
 * @return a boolean, false if the upload was cancelled, true if it completes 
 * @throws IOException
 * @throws DropboxException
 */
public static boolean upload(DropboxAPI<?> dropbox, InputStream stream,
        long length, String path) throws IOException, DropboxException {
    // Create a chunked uploader
    ChunkedUploader uploader = dropbox.getChunkedUploader(stream, length);
    try {
        int tryCounter = 1;
        while (!uploader.isComplete()) {
            try {
                uploader.upload(); // The exception occurs on this line
            } catch (DropboxException e) {
                tryCounter++;
                if (tryCounter > 5) throw e; // Give up after a while.
                System.err.println ("Upload failed, trying again ...");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                }
            }
        }
    } catch (DropboxPartialFileException e) {
        // Upload was cancelled
        return false;
    }
    // If the upload completes, determine the current revision of the path.
    String parentRev = null;
    try {
        Entry metadata = dropbox.metadata(path, 1, null, false, null);
        parentRev = metadata.rev;
    } catch (DropboxServerException e) {
        // If the error is not a FileNotFound error => It's really an error
        if (e.error!=DropboxServerException._404_NOT_FOUND) throw e;
    }
    // Finish the upload
    uploader.finish(path, parentRev);
    return true;
}
/**将内容上载到Dropbox。
*@param dropbox已链接dropbox API
*@param stream要上载的流
*@param length要上载的字节数
*@param path存储上传内容的路径
*@返回布尔值,如果上载被取消,则返回false;如果上载完成,则返回true
*@抛出异常
*@dropbox异常
*/
公共静态布尔上传(DropboxAPI dropbox、InputStream、,
长长度,字符串路径)引发IOException,DropBoxexException{
//创建一个分块上传程序
ChunkedUploader uploader=dropbox.getChunkedUploader(流,长度);
试一试{
int tryCounter=1;
而(!uploader.isComplete()){
试一试{
uploader.upload();//此行发生异常
}捕获(DropBoxexException e){
tryCounter++;
如果(tryCounter>5)抛出e;//过一会儿就放弃。
System.err.println(“上载失败,重试…”);
试一试{
睡眠(1000);
}捕捉(中断异常e1){
}
}
}
}捕获(DropboxPartialFileE异常){
//上载被取消
返回false;
}
//如果上载完成,请确定路径的当前版本。
字符串parentRev=null;
试一试{
条目元数据=dropbox.metadata(路径,1,null,false,null);
parentRev=metadata.rev;
}捕获(DropboxServerException e){
//如果该错误不是FileNotFound错误=>则实际上是一个错误
如果(e.error!=DropboxServerException.\u 404\u未找到)抛出e;
}
//完成上传
上传器.finish(路径,parentRev);
返回true;
}
知道我做错了什么吗


PS:当然,我验证了其他api函数是否与我传递给该方法的DropboxAPI实例一致。

我已将问题提交给Dropbox团队。 他们只是回答我这是Dropbox API中的一个bug。
版本1.5.3修复了这个问题。

我已将问题提交给Dropbox团队。 他们只是回答我这是Dropbox API中的一个bug。
版本1.5.3修复了它。

您好,我刚刚在我自己的项目中使用了您的代码,它与复制粘贴一起工作,因此它不是hear,可能是与帐户步骤的链接或您的“dropbox”对象(DropboxAPI)的初始化有关?您好,我刚刚在我自己的项目中使用了您的代码,它与复制粘贴一起工作,所以它不是hear,可能是与帐户步骤的链接或“dropbox”对象(DropboxAPI)的初始化有关?也可能与发送给我的消息相同:我也收到了同样的消息。:)