使用 Javascript 实现跨域上传文件到存储
08/31/2017
本文内容
用户在 Azure 上构建 B/S 程序时,有很多场景需要存储海量的文件,比如图片、文档及视频等,按照传统的方式,很多用户会将这些文件存储到宿主服务器上,比如基于 IIS 网站可能会考虑将这些文件存放在虚拟目录下某个文件夹中。不过目前大部分的 Azure 计算服务在一定程度都有容量限制,比如虚拟机可附加的磁盘数量和单块磁盘容量也只能支撑几十 TB 的总容量。PaaS 的计算服务,如 Web Apps、Cloud Service、Service Fabric 等因无法附加磁盘,所支撑的存储容量更是少之有少,往往支持到几十或几百 GB。
因此,对于云端 B/S 应用产生的文件存储,我们急需一种有效的存储方式。从现有的服务及适用场景来看,将应用文件托管到 Azure Blob Storage 服务,是最为有效的方式。存储单个账户规模可以支撑 500TB 容量,通过配置多个账户,可以支撑应用文件的海量存储,达到线性扩展的目的。
那么,B/S 应用如何将文件上传到存储服务呢?一般有两种方案:
方式 1:使用传统逻辑将文件从浏览器端(Client)上传到虚拟机(Server),然后在调用存储接口,将文件从虚拟机(Server)上传到存储(Azure Storage)。
方式 2:将文件从浏览器