使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件
Azure的存储包含Storage Account、Container、Blob等具体的关系如下:

我们常用的blob存储,存放在Storage Account的Container里面。
目前有三种方式可以把Blob里的内容共享给其他用户,这三种方式是:
1.把Container的属性设置为公共容器

2.把Blob属性设置为公共公共Blob
设置好后,blob就可以通过wget的方式下载下来。
3.通过SAS Token的方式实现在一定时间段内的文件共享
SAS是shared access signature (SAS),可以实现文件共享。

SAS Provider Service通过旁路的方式生成SAS的token,客户通过这个SAS Token实现在一定时间内,一定权限的访问。
下面将采用powershell的方式生成SAS Token,给客户访问的权限。
有一个文件:
Get-AzureStorageBlob -Container hengweisoft -Blob googlechrome.dmg
Container Uri: https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft
Name BlobType Length ContentType LastModified SnapshotTime
---- -------- ------ ----------- ------------ ------------
googlechrome.dmg BlockBlob 65936251 application/octet-stream 2015/7/6 8:09:00 +00:00
其中hengweisoft这个Container是private的Container。
$keys = Get-AzureStorageKey -StorageAccountName portalvhds6mlqtd15wqmm7
$ctx = New-AzureStorageContext -StorageAccountName portalvhds6mlqtd15wqmm7 -StorageAccountKey $keys.Primary
$startTime = Get-Date
$endTime = $startTime.AddHours(2.0)
New-AzureStorageBlobSASToken -Container hengweisoft -Blob googlechrome.dmg -context $ctx -Permission rwd -StartTime $startTime -ExpiryTime $endTime
通过这个命令可以生成一串SAS的Token:
?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd
将这一串Token连接到Blob的URL上:
https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft/googlechrome.dmg?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd
这个文件在2个小时之内是可以进行不需要认证的访问的。
可以通过:
wget "https://portalvhds6mlqtd15wqmm7.blob.core.chinacloudapi.cn/hengweisoft/googlechrome.dmg?sv=2015-02-21&sr=b&sig=Ifn6JFOinaLQpYGKCKsYiUieQ58WdExxV2Z52Nx%2Fdjs%3D&st=2016-02-05T09%3A36%3A57Z&se=2016-02-05T11%3A36%3A57Z&sp=rwd"
直接获得这个文件。
使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件的更多相关文章
- 【Azure 存储服务】Java Azure Storage SDK V12使用Endpoint连接Blob Service遇见 The Azure Storage endpoint url is malformed
问题描述 使用Azure Storage Account的共享访问签名(Share Access Signature) 生成的终结点,连接时遇见 The Azure Storage endpoint ...
- Azure China (10) 使用Azure China SAS Token
<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 注意:本文介绍的是Azure China Storage Priva ...
- 【Azure 存储服务】代码版 Azure Storage Blob 生成 SAS (Shared Access Signature: 共享访问签名)
问题描述 在使用Azure存储服务,为了有效的保护Storage的Access Keys.可以使用另一种授权方式访问资源(Shared Access Signature: 共享访问签名), 它的好处可 ...
- [Azure Storage]使用Java上传文件到Storage并生成SAS签名
Azure官网提供了比较详细的文档,您可以参考:https://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to ...
- 直传文件到Azure Storage的Blob服务中
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:为了庆祝获得微信公众号赞赏功能,忙里抽闲分享一下最近工作的一点心得:如何直接从浏览器中上传文件到Azure ...
- Microsoft Azure Storage Exployer使用指南
概述 Microsoft Azure Storage Exployer 是微软官方推荐的一款管理Azure Storage 客户端工具,客户使用完全免费.支持Windows.Mac和Linux.用户使 ...
- Azure Queue Storage 基本用法 -- Azure Storage 之 Queue
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure File Storage 基 ...
- Azure File Storage 基本用法 -- Azure Storage 之 File
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...
- Azure Blob Storage 基本用法 -- Azure Storage 之 Blob
Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Table storage ...
随机推荐
- mysql数据库访问授权
1.进入MySQL服务器 d:\mysql\bin\> mysql -h localhost -u root; 2.赋予任何主机访问数据的权限 mysql> GRANT ALL PRIVI ...
- Java和js的区别,以及Java和c的区别
刚开始的时候我们也搞不清这些概念,不过后来就慢慢清晰了,首先和大家谈谈Java和js的区别,最简单的区别就是一个是后端,一个是前端. java是纯面向对象语言,javascrip其实和Java是完 ...
- 【python】-- 递归函数、高阶函数、嵌套函数、匿名函数
递归函数 在函数内部,可以调用其他函数.但是在一个函数在内部调用自身,这个函数被称为递归函数 def calc(n): print(n) if int(n/2) == 0: #结束符 return n ...
- 超轻量级、高性能C日志库--EasyLogger
[ 声明:版权全部,欢迎转载.请勿用于商业用途. 联系信箱:armink.ztl@gmail.com] EasyLogger 1. 介绍 EasyLogger 是一款超轻量级(ROM<1.6K, ...
- CentOS7安装MySQL8.0小计
之前讲配置文件和权限的时候有很多MySQL8的知识,有同志说安装不太一样,希望发个文,我这边简单演示一下 1.环境安装 下载MySQL提供的CentOS7的yum源 官方文档:<https:// ...
- Android Dev Tips
Ref:Android Service与Activity之间通信的几种方式 Ref:基础总结篇之五:BroadcastReceiver应用详解 Ref:Android Activity和Intent机 ...
- thinkphp 的 Action 控制器中的系统常量总结
THINK_PATH // ThinkPHP系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 CONTROLLER_NAME // 当前控制器名称 MODULE_N ...
- STL 之 map的用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- web应用组成结构,web.xml的作用
- Android Studio 技巧备忘
1.日志输入匹配 在日志输入框,点击Edit Filter Configuration 输入syso,并匹配规则 这样就过滤出自己想要的日志