【问题标题】:MS Graph Java SDK: how to upload a large file to OneDrive?MS Graph Java SDK:如何将大文件上传到 OneDrive?
【发布时间】:2019-01-02 15:13:17
【问题描述】:

我正在尝试从我的 Java 应用程序将文件上传到 OneDrive,但我不了解流程,也没有看到 SKD 中用于文件上传的任何文档或方法。

我发现的唯一流程是:

driveClient.me().drive().root().createUploadSession(uploadProperties).buildRequest().post()

但这会导致NPE: source

如何将内容设置为 InputStream ?

【问题讨论】:

    标签: onedrive microsoft-graph-sdks


    【解决方案1】:

    您必须使用 ChunkedUploadProvider。下面是官方上传大文件的示例代码:https://docs.microsoft.com/en-us/graph/sdks/large-file-upload?tabs=java

    对我来说,此示例适用于大小小于 1.9921875 GB 的文件。不幸的是,较大的文件因“上传会话失败太多次”错误而失败。 解决方法是使用 File.length() 方法获取文件大小:

    long streamSize = file.length();
    

    而不是

    long streamSize = (long)fileStream.available();
    

    如示例中所示。

    发生这种情况是因为 fileStream.available() 将可用字节作为整数返回,并且整数的最大值(以字节为单位)约为 2GB。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 2019-11-23
      相关资源
      最近更新 更多