onedrive - Microsoft Graph SDK OneDrive uploadSession 错误代码 :BadRequest

标签 onedrive microsoft-graph-sdks

我尝试使用 java sdk 将文件上传到 OneDrive 特殊文件夹,但收到以下错误

错误代码:BadRequest 错误消息:使用“microsoft.graph.createUploadSession”的相同绑定(bind)参数发现多个操作重载。

这是我正在使用的java代码片段

private void uploadFile(IGraphServiceClient graphClient, File localFile, String onedriveFileName) throws IOException, InterruptedException {
    // Get an input stream for the file
    InputStream fileStream = new FileInputStream(localFile);
    long streamSize = localFile.length();

    // Create a callback used by the upload provider
    IProgressCallback<DriveItem> callback = new IProgressCallback<DriveItem>() {
        @Override
        // Called after each slice of the file is uploaded
        public void progress(final long current, final long max) {
            LOGGER.trace(String.format("Uploaded %d bytes of %d total bytes", current, max));
        }

        @Override
        public void success(final DriveItem result) {
            LOGGER.info(String.format("Uploaded file with ID: %s", result.id));
        }

        public void failure(final ClientException ex) {
            LOGGER.error(String.format("Error uploading file: %s", ex.getMessage()));
        }
    };

    try {
        // Create an upload session
        UploadSession uploadSession = graphClient
                .me()
                .drive().special("approot")
                .itemWithPath(onedriveFileName)
                .createUploadSession(new DriveItemUploadableProperties())
                .buildRequest()
                .post();

        ChunkedUploadProvider<DriveItem> chunkedUploadProvider =
                new ChunkedUploadProvider<DriveItem>
                        (uploadSession, graphClient, fileStream, streamSize, DriveItem.class);

        // Config parameter is an array of integers
        // customConfig[0] indicates the max slice size
        // Max slice size must be a multiple of 320 KiB
        int[] customConfig = {320 * 1024};

        // Do the upload
        chunkedUploadProvider.upload(callback, customConfig);

    } catch(IOException ex){
        throw ex;
    } catch (Exception  ex) {
        throw ex;
    }
}

任何帮助表示赞赏。 谢谢

最佳答案

我的问题是文件名中有特殊字符,删除它们为我解决了这个问题。

关于onedrive - Microsoft Graph SDK OneDrive uploadSession 错误代码 :BadRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64316220/

相关文章:

microsoft-graph-api - 图生命周期通知未注册正确的端点

azure - Onedrive for Business - 无法共享文件/文件夹 : 403 "forbidden"

java - Android 上的 Microsoft Graph 在检索文件时响应 404

windows-10 - 如何在Windows 10中将分区完全备份到Microsoft OneDrive?

c# - 使用 Graph API 将文件(> 4MB)上传到 OneDrive

php - "Access denied"Microsoft Graph 制作文件夹时

c# - 如何检查本地 OneDrive 文件夹是否同步?

c# - 无法通过 Microsoft.Graph 访问已删除项目

c# - 适用于 .NET 的 Microsoft Graph SDK 是否自动处理速率限制?

office365 - 如何使用 Graph SDK 获取用户的邮箱设置