2017-03-01 101 views
2

接下来的问题来自previous question,但未得到答复。用于在Azure存储中编辑MS Word文档的选项

我有在Azure中的Web应用程序的要求来编辑文档,而不是: -

  1. 下载文件
  2. 公开赛在MS Office Word中下载的文件
  3. 编辑和保存在本地
  4. 点击Web表单上的按钮
  5. 浏览到编辑的文件,然后单击OK(确定)上传

客户想类似于在SharePoint即

  1. 得到什么经验单击链接到Word文档
  2. MS Office Word中启动客户端
  3. 他们编辑并保存(在线)文件

一个解决方案,我发现是...

存放在Azure的文件共享文档。创造条件,对每个Windows客户端访问设置用户名和Azure的文件共享密码运行登录脚本....在HTML类似

cmdkey /add:<storage_account>.file.core.windows.net /user:AZURE\<storage_account> /pass:<storage_account_key> 

使用链接...

<a href='file://///<storage_account>.file.core.windows.net/<storage_container>/test.docx'>Test.doc</a> 

这有很多问题。

  1. 这不是一个跨浏览器的解决方案。虽然此链接将启动MS Office Word并在Firefox和Internet Explorer中成功加载文档,但它在Chrome(下载文件)和Edge(根本不处理它)中不起作用。
  2. 它本质上是不安全的,需要将一组凭证分发给所有需要访问系统的客户端。

任何人都可以提出替代解决方案吗?

+0

谁甚至没有礼貌解释为什么投了一个问题的人... – Mick

回答

2

选项在Azure存储编辑MS Word文档

进行在线编辑MS Word文件,即保存Word文档OneDrive是一个不错的选择。 OneDrive将为我们上传的文件提供链接,并且我们可以根据此链接查看和编辑文件。

这里是详细的步骤。

  1. 阅读您要从Azure存储编辑的MS Word文档。
  2. 使用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" 

欲了解更多信息,下面的链接供您参考。

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" 
    } 
    

    有关详细信息,下面链接是供参考。

    WebHooks - Adding a new subscription

  • 从OneDrive文件夹中删除文件,如果该文件夹已满。
  • +0

    感谢一个很好的方法。 – Mick

    +0

    你有没有试过我的建议?如果我的回复对您有帮助,请将其标记为答案。谢谢。 – Amor