这个问题来自以前没有解决的问题。
我在Azure Web应用程序中需要编辑文档,而不是: -
- 下载文件
- 在MS Office Word中打开下载的文件
- 编辑并保存本地
- 单击Web表单上的按钮
- 浏览到编辑的文件,然后单击确定上传
客户希望经验与您在SharePoint中获得的体验,即。
- 单击Word文档的链接
- MS Office Word在客户端
- 他们编辑并保存(在线)文档
我发现的一种解决方案是...
将文档存储在Azure文件共享中。创建一个将在每个Windows客户端访问中运行的登录脚本,以设置Azure文件共享的用户名和密码..
cmdkey /add:<storage_account>.file.core.windows.net /user:AZURE<storage_account> /pass:<storage_account_key>
使用html中的链接,例如...
<a href='file://///<storage_account>.file.core.windows.net/<storage_container>/test.docx'>Test.doc</a>
这有很多问题。
- 这不是交叉浏览器解决方案。虽然此链接将导致MS Office Word启动并成功加载文档在Firefox和Internet Explorer中,但它在Chrome(下载文件)和Edge(根本不处理它)中不起作用。
- 它本质上是不安全的,需要将一组凭据分配给所有需要访问系统的客户。
任何人都可以建议替代解决方案吗?
在Azure存储中编辑MS Word文档的选项
要在线编辑MS Word文档,将Word文档保存到OneDrive是一个不错的选择。OneDrive将为我们上传的文件提供一个链接,我们可以根据此链接查看和编辑文件。
这是细节步骤。
- 阅读您要从Azure存储中编辑的MS Word文档。
- 使用OneDrive API将本文档保存到OneDrive文件夹中,并从响应中获取链接。这是我用来将文件上传到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属性中获取文件的链接。就是这样,
"webUrl": "https://1drv.ms/w/s!AI164yLtIBq0gSA"
有关更多信息,以下链接是您的参考。
简单的项目使用put
上传到OneDrive- 将Web挂钩添加到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"
}
有关更多信息,以下链接是您的参考。
webhooks-添加新订阅
- 如果文件夹已满,请从OneDrive文件夹中删除文件。