这是将 blob 从一个容器移动到另一个容器的示例。请注意这是一个两步过程,并注意使此声明性和易于理解的绑定。我正在将一个 blob 从移动in
到out
:
using BlobMover.Models;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.IO;
using System.Threading.Tasks;
namespace BlobMover
{
public static class BlobMover
{
[StorageAccount("Connection")]
[FunctionName("BlobMover")]
public static async Task Run(
[QueueTrigger("%BlobMover:TriggerQueue%")] BlobMessage msg,
[Blob("{source}-error/{name}", FileAccess.Write)] CloudBlockBlob error,
[Blob("{destination}/{name}", FileAccess.Write)] CloudBlockBlob @out,
[Blob("{source}/{name}", FileAccess.Read)] CloudBlockBlob @in,
ILogger log)
{
var trackingId = Guid.NewGuid();
await @out.StartCopyAsync(@in);
await @in.DeleteAsync();
}
}
}