如何确定Azure Blob是否与当前文件(C#/.Net核心)不同?
如果要覆盖的Blob(Blob文件)与当前文件(正在上载的文件)不同,我只想将文件上载到Azure Blob存储如何确定Azure Blob是否与当前文件(C#/.Net核心)不同?,c#,azure,file,.net-core,azure-storage-blobs,C#,Azure,File,.net Core,Azure Storage Blobs,如果要覆盖的Blob(Blob文件)与当前文件(正在上载的文件)不同,我只想将文件上载到Azure Blob存储 是否有人对使用C#/.Net Core的此功能有任何建议?根据您可以对当前文件执行的操作,有几种方法可以实现此功能 最简单的方法就是直接上传,而不用担心它是否会改变。如果它是相同的,它将保留,如果不是,它将被替换为新版本 根据你的问题,这可能不是你的选择。下一步要检查的是。您可以让Blob store使用默认值,也可以在上载Blob时覆盖它们 您可以在门户中查看它们,它们的外观如下:
是否有人对使用C#/.Net Core的此功能有任何建议?根据您可以对当前文件执行的操作,有几种方法可以实现此功能
LAST MODIFIED 11/20/2020, 1:28:22 PM
CREATION TIME 7/31/2019, 11:44:55 AM
VERSION ID -
TYPE Block blob
SIZE 64 B
ACCESS TIER N/A
ACCESS TIER LAST MODIFIED N/A
SERVER ENCRYPTED true
ETAG 0x8D88D820FE0B5E4
CONTENT-TYPE application/octet-stream
CONTENT-MD5 vfS7mlI8PCeeG2yXyUQ25A==
LEASE STATUS Unlocked
LEASE STATE Available
要在C#中获取它们,请运行BlobProperties properties=wait blob.GetPropertiesAsync()代码>
如果新文件是现有文件+编辑,则LastModified属性可能足以说明它们是否不同
现有文件和新文件的MD5哈希也是比较好的选择。哈希不是严格唯一的,但它们通常是唯一的,足以判断文件是否已更改
如果您可以控制blob的创建和更新,还可以选择在blob上设置自定义属性。这将允许您在blob上设置一些可以跟踪的内容,以查看内容是否已更改。相同的GetPropertiesAsync()
方法检索元数据字典,并通过创建dictionary
并将其传递给blob.SetMetadataAsync(元数据)来设置它代码>
绝对最坏的情况是下载现有blob并对两个文档进行比较。除非有什么原因我必须这样做,如果2-4对我来说不起作用,我会选择第一个选项,并且只把它作为最后的手段