Azure Stack Hub 存储开发工具入门

Microsoft Azure Stack Hub 提供一组存储服务,包括 Blob、表和队列存储。

使用本文作为使用 Azure Stack Hub 存储开发工具的入门指南。 可以在对应的 Azure 存储教程中,找到更多的详细信息和示例代码。

注意

Azure Stack Hub 存储和 Azure 存储之间存在一些差异,包括每个平台的特定要求。 例如,Azure Stack Hub 有特定的客户端库以及终结点后缀要求。 有关详细信息,请参阅 Azure Stack Hub 存储:差异和注意事项

Azure 客户端库

对于存储客户端库,请了解与 REST API 兼容的版本。 还必须在代码中指定 Azure Stack Hub 终结点。

2301 更新及更高版本

客户端库 Azure Stack Hub 支持的版本 链接 终结点规范
.NET 通用:12.9.0
Blob:12.10.0
队列:12.8.0
NuGet 包:
通用:https://www.nuget.org/packages/Azure.Storage.common/12.9.0
Blob:https://www.nuget.org/packages/Azure.Storage.Blobs/12.10.0
队列:https://www.nuget.org/packages/Azure.Storage.queues/12.8.0

GitHub 版本:
通用:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.9.0/sdk/storage/Azure.Storage.Common
Blob:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.10.0/sdk/storage/Azure.Storage.Blobs
队列:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.8.0/sdk/storage/Azure.Storage.Queues
app.config 文件
Java 通用:12.12.0
Blob:12.14.3
队列:12.11.3
Maven 包:
通用:https://mvnrepository.com/artifact/com.azure/azure-storage-common/12.12.0
Blob:https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.14.3
队列:https://mvnrepository.com/artifact/com.azure/azure-storage-queue/12.11.3

GitHub 版本:
通用:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-common_12.12.0/sdk/storage/azure-storage-common
Blob:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-blob_12.14.3/sdk/storage/azure-storage-blob
队列:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-queue_12.11.3/sdk/storage/azure-storage-queue
连接字符串设置
Node.js 2.8.3 NPM 链接:
https://www.npmjs.com/package/azure-storage
(运行:npm install azure-storage@2.8.3

GitHub 版本:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
服务实例声明
C++ Blob:12.2.0
队列:12.0.0
GitHub 版本:
Blob:https://github.com/Azure/azure-sdk-for-cpp/tree/azure-storage-blobs_12.2.0
队列:https://github.com/Azure/azure-sdk-for-cpp/tree/azure-storage-queues_12.0.0
连接字符串设置
PHP 1.2.0 GitHub 版本:
通用:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
队列:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
表:https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

通过编辑器进行安装(若要了解更多内容,请参阅下面的详细信息。)
连接字符串设置
Python Blob:12.9.0
队列:12.1.6
GitHub 版本:
Blob:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-blob_12.9.0/sdk/storage/azure-storage-blob
队列:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-queue_12.1.6/sdk/storage/azure-storage-queue
服务实例声明
Ruby 1.0.1 RubyGems 包:
常见:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob:https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
队列:https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
表:https://rubygems.org/gems/azure-storage-table/versions/1.0.1

GitHub 版本:
通用:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
队列:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
表:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
连接字符串设置

注意

旧版 .NET 和 Java 客户端库依赖于易受攻击的 Jackson 包版本,因此存在一个高严重性漏洞。 强烈建议使用 .NET 和 Java 客户端库的最新受支持版本来避免安全问题。

通过 Composer 安装 PHP 客户端 - 当前

若要通过编辑器进行安装,请执行以下操作(以 Blob 为例):

  1. 在项目的根目录中,使用以下代码创建一个名为 composer.json 的文件:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. composer.phar 下载到项目根目录。

  3. 运行:php composer.phar install

指定 API 版本

若要使用新的 .NET 客户端库(通用:v12.9.0 / Blob:v12.10.0 / 队列:v12.8.0)和 Java 客户端库(通用:v12.12.0 / Blob:v12.13.0 / 队列:v12.10.0),必须在每个客户端类(包括 BlobServiceClient、BlobContainerClient、BlobClient、QueueServiceClient 和 QueueClient)中显式指定 serviceVersion,因为 Azure Stack Hub 目前不支持在客户端类中指定默认版本 。

示例

.NET
BlobClientOptions options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2019_07_07);
BlobServiceClient client = new BlobServiceClient("<connection_string>", options);
Java
BlobServiceVersion version = BlobServiceVersion.V2019_07_07; 
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .endpoint("<your_endpoint>")
    .sasToken("<your_SAS_token>")
    .serviceVersion(version)
    .buildClient();

2008 更新及更高版本

客户端库 Azure Stack Hub 支持的版本 链接 终结点规范
.NET 通用:12.9.0
Blob:12.10.0
队列:12.8.0
NuGet 包:
通用:https://www.nuget.org/packages/Azure.Storage.common/12.9.0
Blob:https://www.nuget.org/packages/Azure.Storage.Blobs/12.10.0
队列:https://www.nuget.org/packages/Azure.Storage.queues/12.8.0

GitHub 版本:
通用:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.9.0/sdk/storage/Azure.Storage.Common
Blob:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.10.0/sdk/storage/Azure.Storage.Blobs
队列:https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.8.0/sdk/storage/Azure.Storage.Queues
app.config 文件
Java 通用:12.12.0
Blob:12.13.0
队列:12.10.0
Maven 包:
通用:https://mvnrepository.com/artifact/com.azure/azure-storage-common/12.12.0
Blob:https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.13.0
队列:https://mvnrepository.com/artifact/com.azure/azure-storage-queue/12.10.0

GitHub 版本:
通用:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-common_12.12.0/sdk/storage/azure-storage-common
Blob:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-blob_12.13.0/sdk/storage/azure-storage-blob
队列:https://github.com/Azure/azure-sdk-for-java/tree/azure-storage-queue_12.10.0/sdk/storage/azure-storage-queue
连接字符串设置
Node.js 2.8.3 NPM 链接:
https://www.npmjs.com/package/azure-storage
(运行:npm install azure-storage@2.8.3

GitHub 版本:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
服务实例声明
C++ 7.2.0 GitHub 版本:
https://github.com/Azure/azure-storage-cpp/releases/tag/v7.2.0
连接字符串设置
PHP 1.2.0 GitHub 版本:
通用:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
队列:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
表:https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

通过编辑器进行安装(若要了解更多内容,请参阅下面的详细信息。)
连接字符串设置
Python Blob:12.3.1
队列:12.1.6
GitHub 版本:
Blob:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-blob_12.3.1/sdk/storage/azure-storage-blob
队列:
https://github.com/Azure/azure-sdk-for-python/tree/azure-storage-queue_12.1.6/sdk/storage/azure-storage-queue
服务实例声明
Ruby 1.0.1 RubyGems 包:
常见:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob:https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
队列:https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
表:https://rubygems.org/gems/azure-storage-table/versions/1.0.1

GitHub 版本:
通用:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
队列:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
表:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
连接字符串设置

通过 Composer 安装 PHP 客户端 - 当前

若要通过编辑器进行安装,请执行以下操作(以 Blob 为例):

  1. 在项目的根目录中,使用以下代码创建一个名为 composer.json 的文件:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. composer.phar 下载到项目根目录。

  3. 运行:php composer.phar install

指定 API 版本

若要使用新的 .NET 客户端库(通用:v12.9.0 / Blob:v12.10.0 / 队列:v12.8.0)和 Java 客户端库(通用:v12.12.0 / Blob:v12.13.0 / 队列:v12.10.0),必须在每个客户端类(包括 BlobServiceClient、BlobContainerClient、BlobClient、QueueServiceClient 和 QueueClient)中显式指定 serviceVersion,因为 Azure Stack Hub 目前不支持在客户端类中指定默认版本 。

示例

.NET
BlobClientOptions options = new BlobClientOptions(BlobClientOptions.ServiceVersion.V2019_07_07);
BlobServiceClient client = new BlobServiceClient("<connection_string>", options);
Java
BlobServiceVersion version = BlobServiceVersion.V2019_07_07; 
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .endpoint("<your_endpoint>")
    .sasToken("<your_SAS_token>")
    .serviceVersion(version)
    .buildClient();

2005 更新

客户端库 Azure Stack Hub 支持的版本 链接 终结点规范
.NET 11.0.0 NuGet 包:
通用:https://www.nuget.org/packages/Microsoft.Azure.Storage.Common/11.0.0
Blob:https://www.nuget.org/packages/Microsoft.Azure.Storage.Blob/11.0.0
队列:
https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/11.0.0

GitHub 版本:
https://github.com/Azure/azure-storage-net/releases/tag/v11.0.0
app.config 文件
Java 12.0.0-preview.3 Maven 包:
https://mvnrepository.com/artifact/com.azure/azure-storage-blob/12.0.0-preview.3

GitHub 版本:
https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage
连接字符串设置
Node.js 2.8.3 NPM 链接:
https://www.npmjs.com/package/azure-storage
(运行:npm install azure-storage@2.8.3

GitHub 版本:
https://github.com/Azure/azure-storage-node/releases/tag/v2.8.3
服务实例声明
C++ 7.1.0 GitHub 版本:
https://github.com/Azure/azure-storage-cpp/releases/tag/v7.1.0
连接字符串设置
PHP 1.2.0 GitHub 版本:
通用:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-common
Blob:https://github.com/Azure/azure-storage-php/releases/tag/v1.2.0-blob
队列:
https://github.com/Azure/azure-storage-php/releases/tag/v1.1.1-queue
表:https://github.com/Azure/azure-storage-php/releases/tag/v1.1.0-table

通过编辑器进行安装(若要了解更多内容,请参阅下面的详细信息。)
连接字符串设置
Python 2.1.0 GitHub 版本:
常见:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-common
Blob:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-blob
队列:
https://github.com/Azure/azure-storage-python/releases/tag/v2.1.0-queue
服务实例声明
Ruby 1.0.1 RubyGems 包:
常见:
https://rubygems.org/gems/azure-storage-common/versions/1.0.1
Blob:https://rubygems.org/gems/azure-storage-blob/versions/1.0.1
队列:https://rubygems.org/gems/azure-storage-queue/versions/1.0.1
表:https://rubygems.org/gems/azure-storage-table/versions/1.0.1

GitHub 版本:
通用:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-common
Blob:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-blob
队列:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-queue
表:https://github.com/Azure/azure-storage-ruby/releases/tag/v1.0.1-table
连接字符串设置

通过 Composer 安装 PHP 客户端 - 当前

若要通过编辑器进行安装,请执行以下操作(以 Blob 为例):

  1. 在项目的根目录中,使用以下代码创建一个名为 composer.json 的文件:

    {
      "require": {
      "Microsoft/azure-storage-blob":"1.2.0"
      }
    }
    
  2. composer.phar 下载到项目根目录。

  3. 运行:php composer.phar install

终结点声明

Azure Stack Hub 终结点包含两个部分:区域的名称和 Azure Stack Hub 域。 在 Azure Stack 开发工具包中,默认终结点是 local.azurestack.external。 如果不确定你的终结点,请与云管理员联系。

示例

.NET

对于 Azure Stack Hub,在 app.config 文件中指定终结点后缀:

<add key="StorageConnectionString"
value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;
EndpointSuffix=local.azurestack.external;" />

Java

对于 Azure Stack Hub,在连接字符串的设置中指定终结点后缀:

public static final String storageConnectionString =
    "DefaultEndpointsProtocol=http;" +
    "AccountName=your_storage_account;" +
    "AccountKey=your_storage_account_key;" +
    "EndpointSuffix=local.azurestack.external";

Node.js

对于 Azure Stack Hub,在声明实例中指定终结点后缀:

var blobSvc = azure.createBlobService('myaccount', 'mykey',
'myaccount.blob.local.azurestack.external');

C++

对于 Azure Stack Hub,在连接字符串的设置中指定终结点后缀:

const utility::string_t storage_connection_string(U("DefaultEndpointsProtocol=https;
AccountName=your_storage_account;
AccountKey=your_storage_account_key;
EndpointSuffix=local.azurestack.external"));

PHP

对于 Azure Stack Hub,在连接字符串的设置中指定终结点后缀:

$connectionString = 'BlobEndpoint=https://<storage account name>.blob.local.azurestack.external/;
QueueEndpoint=https:// <storage account name>.queue.local.azurestack.external/;
TableEndpoint=https:// <storage account name>.table.local.azurestack.external/;
AccountName=<storage account name>;AccountKey=<storage account key>'

Python

对于 Azure Stack Hub,在声明实例中指定终结点后缀:

block_blob_service = BlockBlobService(account_name='myaccount',
account_key='mykey',
endpoint_suffix='local.azurestack.external')

Ruby

对于 Azure Stack Hub,在连接字符串的设置中指定终结点后缀:

set
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;
AccountName=myaccount;
AccountKey=mykey;
EndpointSuffix=local.azurestack.external

Blob 存储

以下 Azure Blob 存储教程适用于 Azure Stack Hub。 请注意前面示例部分中所述的 Azure Stack Hub 特定终结点后缀需求。

队列存储

以下 Azure 队列存储教程适用于 Azure Stack Hub。 请注意前面示例部分中所述的 Azure Stack Hub 特定终结点后缀需求。

表存储

以下 Azure 表存储教程适用于 Azure Stack Hub。 请注意前面示例部分中所述的 Azure Stack Hub 特定终结点后缀需求。

后续步骤