在C#中,如果你使用的是Azure Storage Blob服务,你可以通过BlobServiceClient
、BlobContainerClient
和BlobClient
类来实现文件的上传、删除和下载操作。以下是如何使用这些类的异步方法UploadAsync
、DeleteAsync
和DownloadAsync
的示例。
1. 安装Azure.Storage.Blobs NuGet包
首先,你需要安装Azure.Storage.Blobs NuGet包。你可以通过NuGet包管理器控制台来安装:
shell
Install-Package Azure.Storage.Blobs
2. 上传文件 (UploadAsync)
csharp
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;
using System.IO;
using System.Threading.Tasks;
public class BlobStorageService
{
private readonly BlobServiceClient _blobServiceClient;
public BlobStorageService(string connectionString)
{
_blobServiceClient = new BlobServiceClient(connectionString);
}
public async Task UploadFileAsync(string containerName, string blobName, string filePath)
{
var containerClient = _blobServiceClient.GetBlobContainerClient(containerName);
await containerClient.CreateIfNotExistsAsync();
var blobClient = containerClient.GetBlobClient(blobName);
await using FileStream uploadFileStream = File.OpenRead(filePath);
await blobClient.UploadAsync(uploadFileStream, overwrite: true);
}
}
3. 删除文件 (DeleteAsync)
csharp
public async Task DeleteFileAsync(string containerName, string blobName)
{
var containerClient = _blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(blobName);
await blobClient.DeleteIfExistsAsync();
}
4. 下载文件 (DownloadAsync)
csharp
public async Task DownloadFileAsync(string containerName, string blobName, string downloadFilePath)
{
var containerClient = _blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(blobName);
await using FileStream downloadFileStream = File.OpenWrite(downloadFilePath);
await blobClient.DownloadToAsync(downloadFileStream);
}
使用示例
csharp
class Program
{
static async Task Main(string[] args)
{
var connectionString = "your_connection_string_here";
var blobService = new BlobStorageService(connectionString);
// 上传文件
await blobService.UploadFileAsync("mycontainer", "myfile.txt", "path_to_your_file.txt");
// 下载文件
await blobService.DownloadFileAsync("mycontainer", "myfile.txt", "path_to_download_file.txt");
// 删除文件
await blobService.DeleteFileAsync("mycontainer", "myfile.txt");
}
}
请确保将your_connection_string_here
替换为你的Azure Storage账户的实际连接字符串,并根据需要调整容器名称、Blob名称和文件路径。