You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS EC2实例与Microsoft One Drive/SharePoint之间读写文件

可行性说明

首先明确:scp无法实现该需求,scp是基于SSH协议的文件传输工具,仅支持对接开启了SSH服务的远程主机,OneDrive/SharePoint本身不提供SSH接入能力,因此该方案不可行。
你可以通过微软官方的Microsoft Graph API(OneDrive相关接口属于Graph API的子集),或者开源的OneDrive命令行客户端在EC2上直接完成读写操作,无需经过本地设备。

具体实现方法

方法1:使用开源OneDrive命令行客户端(无代码方案,适合普通文件传输需求)

这是最简便的落地方式,无需自行开发即可直接完成文件的上传、下载、同步操作,步骤如下:

  • 安装依赖和编译环境:根据EC2运行的Linux发行版安装对应依赖,以Debian/Ubuntu为例,执行命令:
sudo apt update && sudo apt install -y libsqlite3-dev libcurl4-openssl-dev git build-essential dlang
  • 编译安装开源OneDrive命令行客户端:获取对应客户端源码后按指引编译安装即可,主流Linux发行版也有预编译的软件包可直接安装。
  • 账号授权:首次执行onedrive命令后,终端会输出授权提示,你在任意可访问网页的设备上完成微软账号授权后,将授权码粘贴回EC2终端即可完成绑定,全程不需要在本地同步任何文件。
  • 常用操作命令:
    • 上传EC2本地文件到OneDrive:onedrive --upload /ec2/local/file/path /onedrive/target/path/
    • 下载OneDrive文件到EC2本地:onedrive --download /onedrive/file/path /ec2/save/path/
    • 同步指定目录内容:onedrive --synchronize --single-directory /onedrive/target/dir

方法2:调用Microsoft Graph API实现(适合自定义开发、业务集成场景)

如果你需要将OneDrive读写能力集成到自有业务流程中,可以直接调用官方API实现,核心操作步骤如下:

  • 前置准备:在微软Azure应用管理后台注册应用,获取应用ID、客户端密钥,配置OneDrive/SharePoint的读写权限,选择适配服务端无交互运行的授权模式即可。
  • 获取访问凭证:调用认证接口获取Access Token,示例命令如下:
curl -X POST https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token \
--header "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "client_id={你的应用ID}" \
--data-urlencode "scope=https://graph.microsoft.com/.default" \
--data-urlencode "client_secret={你的客户端密钥}" \
--data-urlencode "grant_type=client_credentials"

返回结果中的access_token字段即为后续调用业务接口的授权凭证。

  • 上传文件到OneDrive:小于4MB的文件可直接调用上传接口,示例命令如下,大于4MB的文件使用分片上传接口即可:
curl -X PUT https://graph.microsoft.com/v1.0/users/{你的用户ID}/drive/root:/{目标文件路径}:/content \
--header "Authorization: Bearer {你获取到的Access Token}" \
--header "Content-Type: {文件对应MIME类型}" \
--data-binary @/ec2/local/file/path
  • 从OneDrive下载文件到EC2:示例命令如下:
curl https://graph.microsoft.com/v1.0/users/{你的用户ID}/drive/root:/{OneDrive上的文件路径}:/content \
--header "Authorization: Bearer {你获取到的Access Token}" \
--output /ec2/save/file/path
  • 如果你需要操作SharePoint上的文件,仅需要将接口地址中的用户drive替换为对应SharePoint站点的drive地址即可,接口调用逻辑完全一致。

内容的提问来源于stack exchange,提问作者cassiopeia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 23:06:03