📌  相关文章
📜  Microsoft Azure – 在 Azure 应用服务中使用文件(1)

📅  最后修改于: 2023-12-03 15:32:53.411000             🧑  作者: Mango

Microsoft Azure – 在 Azure 应用服务中使用文件

Azure 应用服务提供了许多功能,其中包括处理和存储文件的能力。 程序员可以使用 Azure Blob 存储、Azure 文件存储和 Azure 表存储等服务来实现不同的应用程序需求。 本文将重点介绍在 Azure 应用服务中使用文件的方法。

1. 使用 Azure Blob 存储

Azure Blob 存储是一种基于云的对象存储解决方案,可用于存储大量非结构化数据(例如文本、图像和视频)。 文件存储在 Blob 存储中以块的形式分隔,并分配唯一的 Blob 标识符。 使用 Azure Blob 存储可轻松存储和访问文件,还可以根据需要对它们进行缩放。

1.1. 创建 Blob 容器

在 Azure 门户中,可以轻松创建 Blob 容器。 在“存储帐户”下选择“容器”,然后选择“添加容器”。 给容器分配一个名称,并选择“Blob”类型。

1.2. 上传文件

有多种操作 Blob 存储中的文件的方式,其中之一是上传文件。通过 Azure 门户或 Blob 存储 SDK,可以轻松将文件上传到 Blob 存储。使用 Azure Blob 存储 SDK,您可以通过以下方式上传文件:

var storageAccount = new CloudStorageAccount(credentials, true);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("mycontainer");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlockBlobReference("myblob");
using (var fileStream = File.OpenRead(@"path\to\file"))
{
    await blob.UploadFromStreamAsync(fileStream);
}
1.3. 下载文件

为了从存储中获取文件,可以使用 Azure Blob 存储 SDK 的 DownloadToStreamAsync 方法将 Blob 下载到 MemoryStream 对象中:

var storageAccount = new CloudStorageAccount(credentials, true);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("mycontainer");
var blob = container.GetBlockBlobReference("myblob");
using (var memoryStream = new MemoryStream())
{
    await blob.DownloadToStreamAsync(memoryStream);
    var fileContent = Encoding.UTF8.GetString(memoryStream.ToArray());
}
2. 使用 Azure 文件存储

Azure 文件存储是一种云端文件共享服务,它可以简化应用程序在不同计算机之间共享文件的过程。 使用 Azure 文件存储,可以使用 SMB 3.0 协议从 Azure 应用程序进行文件共享。 使用 Azure 文件存储可轻松地配置和管理共享,使您可以快速在应用程序之间共享文件。

2.1. 创建 Azure 文件存储共享

在 Azure 门户中,可以轻松创建文件共享。 在“存储帐户”下选择“共享”,然后选择“添加共享”。 给共享分配一个名称,并选择“文件”类型。

2.2. 访问 Azure 文件存储

访问文件存储时,您需要知道以下几个参数:共享名称、共享密钥和文件路径。 这些参数可以使用 Azure Blob 存储 SDK 获取。 使用以下示例代码可以访问 Azure 文件存储:

var storageAccount = new CloudStorageAccount(credentials, true);
var fileClient = storageAccount.CreateCloudFileClient();
var share = fileClient.GetShareReference("myshare");
await share.CreateIfNotExistsAsync();
var rootDir = share.GetRootDirectoryReference();
var file = rootDir.GetFileReference("myfile.txt");
using (var stream = await file.OpenReadAsync())
using (var reader = new StreamReader(stream))
{
    var content = await reader.ReadToEndAsync();
}
3. 使用 Azure 表存储

Azure 表存储是 Azure 的非关系型 NoSQL 数据库解决方案,可用于存储结构化数据。 表存储是一种高度可扩展的解决方案,可以轻松加入大量读取和写入负载。

3.1 创建 Azure 表存储

在 Azure 门户中,可以轻松创建表格存储。 在“存储帐户”下选择“表格”,然后选择“添加表格”。

3.2 访问 Azure 表存储

可以使用 Azure 表存储 SDK 访问表存储。 使用以下代码示例,可以查询表单元格并将其值作为字符串返回:

var storageAccount = CloudStorageAccount.Parse(connectionString);
var tableClient = storageAccount.CreateCloudTableClient();
var table = tableClient.GetTableReference("mytable");
await table.CreateIfNotExistsAsync();
var partitionFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "mypartition");
var rowKeyFilter = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.Equal, "myrowkey");
var combinedFilter = TableQuery.CombineFilters(partitionFilter, TableOperators.And, rowKeyFilter);
var query = new TableQuery().Where(combinedFilter);
var results = table.ExecuteQuerySegmentedAsync(query, null).Result;
var result = results.FirstOrDefault();
if (result != null)
{
    var cellValue = result.Properties["myproperty"].StringValue;
}
结论

Azure 应用服务提供了多种处理和存储文件的解决方案,程序员可以根据应用程序需求使用 Azure Blob 存储、Azure 文件存储和 Azure 表存储等服务来实现。 上述示例代码可以帮助程序员在 Azure 应用服务中使用文件,提高了应用程序的可扩展性和可靠性。