DocumentList API可恢复上传无效

时间:2012-11-22 11:23:58

标签: java google-drive-api google-docs-api

最近似乎可恢复上传无效。我上传的所有请求都返回500.

这是我收到的异常堆栈跟踪:

        Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: https://docs.google.com/feeds/upload/create-session/default/private/full/folder%3A0B6Qc9CKRbiEMNTQ2NWYzMjEtY2EwNC00NzRhLWFjNGQtNGEzNzEzNzc4MTRj/contents/?convert=false&upload_id=AEnB2UpuikBd2Rd1wk1j8BPAI3KKTJ1pWoAJEPm3KZCBqLIqj6Rm9uOy7NezC8dzROUghRpTI6Clblj8j4zhKO91ductHL2LBA
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1436)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
        at GoogleDocsManager.uploadWithResumableUpload(GoogleDocsManager.java:1342)

这是代码(自昨天(21-11-2012)以来未进行任何更改)

        String link = initiateSession(mediaBytes, contentType, title, withConvert);

        URL url = new URL(link); 
        HttpURLConnection copyHttpUrlConn = (HttpURLConnection) url.openConnection(); 
        copyHttpUrlConn.setDoOutput(true); 
        copyHttpUrlConn.setRequestMethod("PUT"); 

        copyHttpUrlConn.setRequestProperty("Content-Type",contentType);
        copyHttpUrlConn.setRequestProperty("Content-Length", mediaBytes.length + "");

        String range = "bytes 0-" + (mediaBytes.length - 1) + "/" + (mediaBytes.length);

        copyHttpUrlConn.setRequestProperty("Content-Range", range);

        OutputStream outputStream = copyHttpUrlConn.getOutputStream(); 

        outputStream.write(mediaBytes);

        System.out.println("Code: " + copyHttpUrlConn.getResponseCode());// here I receive the exception

现在我真的不知道在哪里写这类帖子......从旧的DocumentList Api小组我被重定向到这里。

我希望这个问题很快得到解决(我有2个不同的程序使用这个可恢复的上传,昨天两个都没问题,所以我猜这个问题不在我身边)

致以最诚挚的问候,

2 个答案:

答案 0 :(得分:0)

Drive SDK中的500个错误是一种生活方式。我得到它们大约0.5%的时间。尝试以指数退避方式包装API调用并重试。

由于您的错误是在上传中,您可能需要根据其mime类型验证您上传的文件是否包含有效内容。 (例如,如果是text / html,文件是否包含有效的html)。

答案 1 :(得分:0)

4天后错误停止(没有对代码进行任何更改)。 PS:有一段时间有一种奇怪的行为(google appengine无效,而localhost是)。