除Ember应用程序外,禁止直接访问Azure文件

时间:2015-10-07 14:58:42

标签: javascript node.js ember.js azure-storage azure-storage-blobs

我需要阻止访问我的应用程序可以显示的文件。我们在Node上运行Ember.js(还没有Ember-cli),并通过Ember模型检索文件。通过我们的应用程序上传时,文件本身存储在Azure Blob存储中,我们的应用程序通过Azure托管。

Azure Blob似乎有访问控制,但我认为所有的教程都是针对.NET的,而且我现在无法将这个过程一对一映射,因为http://www.dotnetcurry.com/windows-azure/901/protect-azure-blob-storage-shared-access-signature这样的教程似乎使用SDK。

因此,例如,我需要提供一个访问.pdf文件的链接。我正在使用一个ember动作在一个新标签中打开它,但是标签的url显示为:

"https://myapplication.blob.core.windows.net/containing-folder/sensitiveFile.pdf"

如果我将其复制并粘贴到另一个窗口或其他标签页面,我可以轻松访问它。

基于此,我有几个问题:

  1. 我可以限制访问此文件,除非我们的应用程序?如果是这样,它是否只能通过.NET或是否有javascript等价物?我该怎么做呢?
  2. 是否有更广泛的方法来显示文件,但是限制对网址的访问?到目前为止,我能看到的最接近的事情是在新窗口中打开它并隐藏地址栏,但这使得危险地接近弹出窗口+你可以轻松地检索这个URL。

1 个答案:

答案 0 :(得分:1)

我说得太早了。我找到了一个带有共享访问密钥的教程:我似乎第一次错过了Node.js。

https://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/#work-with-shared-access-signatures