为了账号安全,请及时绑定邮箱和手机立即绑定

初试Azure Storage(node版)

什么是Azure Storage

Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob、Queue、File 和 Table。

就是把文件放在云上,给它一个 URL,通过这个 URL 来访问文件。

图片描述

可视化工具

下载地址

Blob操作

一个 Blob 就代表一个文件。

我所需要的图片存储,用的是Block blobs,主要用来存储静态的文件,比如图片、电影和文档。

GitHub

Node.js地址

注意

一、文档中没写第三个参数,这个地方耽误了不少时间;

var blobService = azure.createBlobService(accountName, accountKey, host);

二、README中的API是给node命令行用的,如果上传接口要用浏览器执行,不能直接

var azure = require('azure-storage');

需要引入浏览器专用的sdk,步骤:

1.在node_modules/azure-storage下,

 npm install

2.然后编译export文件

npm run genjs 1

在文件中引入:

import AzureStorage from 'azure-storage/browser/azure-storage.blob.export'
var blobService = AzureStorage.createBlobService(accountName, accountKey, host)

这种形式会讲accountKey直接暴露在js中,为了安全可以在服务端先生成一个sasToken

      var startDate = new Date()
      var expiryDate = new Date(startDate)
      expiryDate.setMinutes(startDate.getMinutes() + 100)
      startDate.setMinutes(startDate.getMinutes() - 100)

      var sharedAccessPolicy = {
        AccessPolicy: {
          Permissions: azure.BlobUtilities.SharedAccessPermissions.READ,
          Start: startDate,
          Expiry: expiryDate
        }
      }

      var token = blobService.generateSharedAccessSignature('qrcode', file.name, sharedAccessPolicy)
      console.log(token)
      var sasUrl = blobService.getUrl('qrcode', file.name, token)
      console.log(sasUrl)

如果是采用sas来创建blobService实例,需要用下面这个API

      var sasKey = 'sasToken'
      var blobUri = 'host地址'
      var blobService = AzureStorage.createBlobServiceWithSas(blobUri, sasKey).withFilter(new AzureStorage.ExponentialRetryPolicyFilter())

然后,下面就可以调用上传文件接口了

var 文件 = document.getElementById('files').files

blobService.createBlockBlobFromBrowserFile('你的container', '你的blob名称', 文件, option对象, function (error, result, response) {
        console.log(222)
        if (error) {
        // Upload blob failed
          console.log(error)
        } else {
        // Upload successfully
          console.log(result)
        }
      })
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消