我正在尝试从 Java 应用程序将文件上传到 OneDrive,但我不了解流程,也没有在 SKD 中看到任何用于文件上传的文档或方法。
我发现的唯一流程是:
driveClient.me().drive().root().createUploadSession(uploadProperties).buildRequest().post()
但这导致NPE: source
.
如何将内容设置为InputStream?
您必须使用分块上传提供者。下面是官方给出的上传大文件的示例代码:https://learn.microsoft.com/en-us/graph/sdks/large-file-upload?tabs=java https://learn.microsoft.com/en-us/graph/sdks/large-file-upload?tabs=java
对我来说,此示例适用于大小小于 1.9921875 GB 的文件。不幸的是,较大的文件失败并出现“上传会话失败次数过多”错误。
解决方案是使用以下命令获取文件大小文件长度() method:
long streamSize = file.length();
代替
long streamSize = (long)fileStream.available();
如示例中所示。
发生这种情况是因为文件流.available()以整数形式返回可用字节,整数的最大值(以字节为单位)约为 2GB。
我希望这可以帮助你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)