当前位置: 首页 > 知识库问答 >
问题:

使用 REST API 将文件上传到一个驱动器

闻人献
2023-03-14

我尝试使用REST API将一个简单的文本作为文件上传到oneDrive。

我创造了一个象征:https://login.microsoftonline.com/

    < li >授予类型客户端凭据 < li >客户端id我的客户端id < li>client_secret我的客户端机密 < Li > https://graph.microsoft.com/.default范围

Content-Type application/x-www-form-urlencoded Keep-Alive true

我将它作为post发送出去,并获得一个带有令牌的JSON。

然后我尝试将文本作为文件上传。

使用以下URLhttps://graph.microsoft.com/v1.0/drive/root://test.txt:/content

>

  • 授权持有者 {我的令牌字符串}

    内容类型文本/纯文本

    正文“需要上传的字符串”

    {"error":{"code":"BadRequest","message":"无法检索租户服务信息。","innerError":{"Request est-id":"098f37d5-96fd-44d0-905b-c147eac223f5","date":"2020-05-19T11:43:03" } } }

    我做错了什么?

    提前谢谢

  • 共有3个答案

    白浩荡
    2023-03-14

    上传文件(

    这个命令就可以完成这项工作

    foo@bar:~$ ACCESS_TOKEN=eyJ0eXAiOiJKV1QiLCJub25jZSI6IlZ0MVBN...
    foo@bar:~$ curl -X PUT 'https://graph.microsoft.com/v1.0/me/drive/root:/myNewFolder/file.tgz:/content' -H 'Authorization: Bearer '"${ACCESS_TOKEN}"'' -T test.tgz
    
    蒯嘉赐
    2023-03-14

    以防其他人有类似的问题,几天前,我也有同样的问题,我通过在Azure Active Directory(ADD)中创建一个租户并切换到这个新的租户,部分解决了这个问题。但是对于这个新的个人Microsoft帐户租户,我有< code >“租户没有SPO许可证。”错误。发生这种情况是因为“添加应用类型”和“我的endpoint”错误,无法与个人Microsft帐户一起使用。

    如果你有企业帐户,则应将该帐户与 Office 365 商业版订阅配合使用,并将租户配置为使用它。这样将按照您的配置工作。

    如果你有一个个人的微软帐户,我在这里分享了如何解决这个问题的一步一步的方法和我们的帐户类型的限制。

    督翰学
    2023-03-14

    如果您想使用Microsoft Graph将文件上传到onedrive,请参阅文档

    PUT /drives/{drive-id}/items/{parent-id}:/{filename}:/content
    PUT /users/{user-id}/drive/items/{parent-id}:/{filename}:/content
    

    例如,将文件上载到租户中某个用户的onedrive

    >

  • 创建 Azure AD 应用程序

    配置应用程序的权限。(Microsoft图形-

    获取访问令牌

    Post  https://login.microsoftonline.com/< My tenantName>/oauth2/v2.0/token
    Content-Type application/x-www-form-urlencoded 
    
    grant_type= client_credentials
    &client_id= My client id
    &client_secret= My client secret
    &scope =https://graph.microsoft.com/.default
    

    4将文件上传到一个用户的onedrive

    Put https://graph.microsoft.com/v1.0/users/<user object id or upn>/drive/items/root:/test.txt:/content
    Authorization : Bearer <Access token>
    
    Content-Type: text/plain
    
    
    <file content>
    

    此外,请注意,当我们使用API上传文件时,文件大小不能大于4MB。如果您想上传大文件,请参阅文档和文档

  •  类似资料:
    • 问题内容: 使用此代码,我上传文件,但该文件作为文档上传。表示我上传该文件的任何类型都将作为文档上传到Google驱动器 问题答案: 据我所知(距离我查看已经有几个月了 ) ,谷歌驱动器API 还不支持(至今?) 。解决方法是考虑安装本机google驱动器共享,然后将要上传的文件写入本地映射的共享文件夹中。然后它的谷歌驱动器问题来处理上传。

    • 我是否需要登录到google cloud来访问身份验证令牌或凭据的API

    • 我尝试的是下面的,但不是工作 从谷歌REST链接,它显示的例子如下,如何运行这个?

    • 这是我收到的错误

    • 我使用已签名的URL从使用Air的移动设备上传blob。 我有两个问题: 使用签名 URL 上传 Blob 时,我假设我不需要按照文档中所述包含所有标头。我是否认为我只需要对URL执行请求,并将编码到正文中的文件包含在正文中,设置为? http://msdn . Microsoft . com/en-us/library/windows azure/DD 179451 . aspx (Upload

    • 本文向大家介绍用php将文件上传到另一个php服务器,包括了用php将文件上传到另一个php服务器的使用技巧和注意事项,需要的朋友参考一下 fopen,fread和fwrite函数可用于打开文件流,读取数据流并将该数据分别写入文件。 文件资源不一定需要指向本地计算机本身上的某个位置。 以下是将文件从本地服务器传输到ftp服务器的示例- 该图像需要传输到FTP服务器。因此,服务器以写模式打开,并且图