我想创建一个Azure函数,当上次修改时间超过30天时,从azure blob存储中删除文件。有人能帮忙或者有文档来做吗?
我使用了HTTP作为触发器,因为您没有指定一个触发器,这更容易测试,但对于定时器触发器等,逻辑是相同的。还假设C#:
[FunctionName("HttpTriggeredFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[Blob("sandbox", Connection = "StorageConnectionString")] CloudBlobContainer container,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
// Get a list of all blobs in your container
BlobResultSegment result = await container.ListBlobsSegmentedAsync(null);
// Iterate each blob
foreach (IListBlobItem item in result.Results)
{
// cast item to CloudBlockBlob to enable access to .Properties
CloudBlockBlob blob = (CloudBlockBlob)item;
// Calculate when LastModified is compared to today
TimeSpan? diff = DateTime.Today - blob.Properties.LastModified;
if (diff?.Days > 30)
{
// Delete as necessary
await blob.DeleteAsync();
}
}
return new OkObjectResult(null);
}
编辑-如何下载JSON文件并使用Newtonsoft.Json
反序列化到对象:
public class MyClass
{
public string Name { get; set; }
}
var json = await blob.DownloadTextAsync();
var myClass = JsonConvert.DeserializeObject<MyClass>(json);
您可以创建计时器触发器函数,从Blob容器中获取项目列表并删除与您上次修改日期的条件不匹配的文件。
我希望这回答了这个问题。
假设存储帐户的类型是常规用途 v2 (GPv2)
或 Blob 存储
,则实际上无需自行执行任何操作。Azure 存储可以为你执行此操作。
您将使用< code>Blob生命周期管理并在那里定义一个策略来删除超过30天的Blob,Azure Storage将为您处理删除事宜。
您可以在此处了解更多信息:https://docs.microsoft.com/en-us/azure/storage/blobs/storage-lifecycle-management-concepts.
如何删除azure blob存储中的文件夹。当我试图删除文件夹时,我看到以下错误: com.azure.storage.blob.models.BloStorageExctive:状态代码409,"在非空目录上不允许进行此操作。请求ID:195b3f66-601e-0071-2edb-094790000000时间:2022-01-15T06:47:55.8443865Z" 在sun.reflect
问题内容: 我想从数据库中的特定表中删除所有时间戳超过180天的行。 我已经试过了: 但这会删除所有行,而不仅仅是删除六个月以上的行。 我在on_search表中有一列称为search_date,其中包含创建该行的时间。 问题答案:
问题内容: 关于如何删除所有30天以上的行有很多问题,但是我找不到与我相同的东西,因此我可以修复它 我需要删除一些超过30天的邮件记录,带有日期的列名称命名为sendOn,并且该列中的行看起来像这样2018-01-12 12:25:00我应该如何格式化查询从表中删除包含30天以上的所有记录? 这会工作吗? 编辑:上面的查询工作,但非常非常慢以任何方式使其更快?我试过了now()但它给出了函数错误的
问题内容: 我需要创建一个报告,在其中我需要减去两个日期并以%H:%M%S的形式返回 这是我插入到列表中的减法: 此列表返回到> 在csv Final_ReportX中,它以以下格式保存:0天00:05:39 我需要它只返回00:05:39,没有几天。 *不是正则表达式 谢谢! 问题答案: 您可以使用将timedelta转换为H:M:S字符串的自定义函数: 参考
我想通过运行在Azure VM上的FTP服务器与用户共享Azure Blob存储中的文件。 据我所知,您不能在VM上挂载Blob存储,但可以使用“网络使用”挂载Azure文件共享。 Blob存储上的文件将以增量方式上载,因此理想情况下,我希望在上载时将其复制到Azure文件,Azure功能似乎是理想的方式,因为它们很容易为我设置和处理Blob存储上的触发器。 我如何使用Azure功能将文件从Blo
我正在尝试做一个Java线程,这个线程必须从一个MySQL数据库中删除所有的记录,超过7天。 在我的表中,我有一列包含如下日期:。