在 Azure 存储中编辑 MS Word 文档的选项
Options for editing MS Word documents in Azure Storage
此问题是 previous question 无人回答的问题。
我在 Azure Web 应用程序中有一个编辑文档的要求,而不是:-
- 正在下载文件
- 在 MS Office Word 中打开下载的文件
- 编辑并保存在本地
- 单击网络表单上的按钮
- 浏览到已编辑的文件,然后单击“确定”上传它
客户希望获得类似于您在 Sharepoint 中获得的体验,即
- 点击link进入word文档
- MS Office Word 在客户端上启动
- 他们编辑并保存(在线)文档
我找到的一个解决方案是...
将文档存储在 Azure 文件共享中。创建一个登录脚本,该脚本将在每次 windows 客户端访问时 运行 设置 Azure 文件共享的用户名和密码....
cmdkey /add:<storage_account>.file.core.windows.net /user:AZURE\<storage_account> /pass:<storage_account_key>
在 html 中使用 link,例如...
<a href='file://///<storage_account>.file.core.windows.net/<storage_container>/test.docx'>Test.doc</a>
这有很多问题。
- 这不是跨浏览器解决方案。虽然此 link 将导致 MS Office Word 启动并在 Firefox 和 Internet Explorer 中成功加载文档,但它在 Chrome(下载文件)和 Edge(不处理完全没有)。
- 它本质上是不安全的,需要将一组凭据分发给需要访问系统的所有客户端。
谁能提出替代解决方案?
Options for editing MS Word documents in Azure Storage
要在线编辑MS Word文档,将Word文档保存到OneDrive是一个不错的选择。 OneDrive会为我们上传的文件提供一个link,我们可以根据这个link.
查看和编辑文件
这里是详细步骤。
- 从 Azure 存储中读取要编辑的 MS Word 文档。
- 使用 OneDrive API 将此文档保存到 OneDrive 文件夹并从响应中获取 link。这是我用来将文件上传到 OneDrive 的 HTTP 请求消息。
PUT https://graph.microsoft.com/v1.0/drive/root:/Documents/{filename}.docx:/content HTTP/1.1
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Authorization: Bearer {your token}
Accept: application/json
Host: graph.microsoft.com
Expect: 100-continue
Connection: Keep-Alive
Put your file content here
我们可以从响应 JSON 对象的 webUrl 属性 中获取文件的 link。是这样的,
"webUrl": "https://1drv.ms/w/s!AI164yLtIBq0gSA"
更多信息,下面link供您参考。
Simple item upload to OneDrive using PUT
- 将网络挂钩添加到您的 OneDrive 文件夹。如果有人在线编辑该文件,将向您的方法发送一条消息,您可以下载更新后的文件并保存到您的 Azure 存储中。这是一个示例 HTTP 请求消息
POST /subscriptions
Content-Type: application/json
{
"notificationUrl": "https://xxxx.azurewebsites.net/api/webhook-receiver",
"expirationDateTime": "2018-01-01T11:23:00.000Z",
"resource": "/me/drive/root",
"changeType": "updated",
"clientState": "client-specific string"
}
更多信息,下面link供您参考。
WebHooks - Adding a new subscription
- 如果文件夹已满,请从 OneDrive 文件夹中删除文件。
此问题是 previous question 无人回答的问题。
我在 Azure Web 应用程序中有一个编辑文档的要求,而不是:-
- 正在下载文件
- 在 MS Office Word 中打开下载的文件
- 编辑并保存在本地
- 单击网络表单上的按钮
- 浏览到已编辑的文件,然后单击“确定”上传它
客户希望获得类似于您在 Sharepoint 中获得的体验,即
- 点击link进入word文档
- MS Office Word 在客户端上启动
- 他们编辑并保存(在线)文档
我找到的一个解决方案是...
将文档存储在 Azure 文件共享中。创建一个登录脚本,该脚本将在每次 windows 客户端访问时 运行 设置 Azure 文件共享的用户名和密码....
cmdkey /add:<storage_account>.file.core.windows.net /user:AZURE\<storage_account> /pass:<storage_account_key>
在 html 中使用 link,例如...
<a href='file://///<storage_account>.file.core.windows.net/<storage_container>/test.docx'>Test.doc</a>
这有很多问题。
- 这不是跨浏览器解决方案。虽然此 link 将导致 MS Office Word 启动并在 Firefox 和 Internet Explorer 中成功加载文档,但它在 Chrome(下载文件)和 Edge(不处理完全没有)。
- 它本质上是不安全的,需要将一组凭据分发给需要访问系统的所有客户端。
谁能提出替代解决方案?
Options for editing MS Word documents in Azure Storage
要在线编辑MS Word文档,将Word文档保存到OneDrive是一个不错的选择。 OneDrive会为我们上传的文件提供一个link,我们可以根据这个link.
查看和编辑文件这里是详细步骤。
- 从 Azure 存储中读取要编辑的 MS Word 文档。
- 使用 OneDrive API 将此文档保存到 OneDrive 文件夹并从响应中获取 link。这是我用来将文件上传到 OneDrive 的 HTTP 请求消息。
PUT https://graph.microsoft.com/v1.0/drive/root:/Documents/{filename}.docx:/content HTTP/1.1
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Authorization: Bearer {your token}
Accept: application/json
Host: graph.microsoft.com
Expect: 100-continue
Connection: Keep-Alive
Put your file content here
我们可以从响应 JSON 对象的 webUrl 属性 中获取文件的 link。是这样的,
"webUrl": "https://1drv.ms/w/s!AI164yLtIBq0gSA"
更多信息,下面link供您参考。
Simple item upload to OneDrive using PUT
- 将网络挂钩添加到您的 OneDrive 文件夹。如果有人在线编辑该文件,将向您的方法发送一条消息,您可以下载更新后的文件并保存到您的 Azure 存储中。这是一个示例 HTTP 请求消息
POST /subscriptions
Content-Type: application/json
{
"notificationUrl": "https://xxxx.azurewebsites.net/api/webhook-receiver",
"expirationDateTime": "2018-01-01T11:23:00.000Z",
"resource": "/me/drive/root",
"changeType": "updated",
"clientState": "client-specific string"
}
更多信息,下面link供您参考。
WebHooks - Adding a new subscription
- 如果文件夹已满,请从 OneDrive 文件夹中删除文件。