blobのメタデータをあるコンテナから別のコンテナにコピーするにはどうすればよいですか?現在、ブロブ日付のコピーは現在の日付に設定されています。どのように私は元のBLOBから新しいBLOBの変更日を設定することができます。メタデータを使用してAzureblobを別のコンテナにコピーする
private void MoveBlobFromThisContainerToBackupContainer(CloudBlobContainer sourceContainer, string sourceDirectory, CloudBlobContainer backupContainer, string backupDirectory, bool isToAddSourceDirectory)
{
backupContainer.CreateIfNotExists();
var sas = sourceContainer.GetSharedAccessSignature(new SharedAccessBlobPolicy()
{
SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-15),
SharedAccessExpiryTime = DateTime.UtcNow.AddDays(1),
Permissions = SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write,
});
var blobs = sourceContainer.ListBlobs();
if (sourceDirectory.Trim().Length > 0 && sourceDirectory.ToUpper() != "ALL")
{
CloudBlobDirectory dir = sourceContainer.GetDirectoryReference(sourceDirectory);
blobs = dir.ListBlobs();
}
foreach (IListBlobItem sourceBlob in blobs)
{
if (sourceBlob.GetType() == typeof(CloudBlockBlob))
{
CloudBlockBlob srcBlob = (CloudBlockBlob)sourceBlob;
string backupBlobName = srcBlob.Uri.Segments[srcBlob.Uri.Segments.Length - 1];
if (sourceDirectory.Length > 0 && isToAddSourceDirectory) backupBlobName = sourceDirectory + "\\" + backupBlobName;
if (backupDirectory.Trim().Length > 0) backupBlobName = backupDirectory + "\\" + backupBlobName;
lblStatus.ForeColor = Color.Blue;
lblStatus.Text = "Blob: " + backupBlobName;
CloudBlockBlob targetBlob = backupContainer.GetBlockBlobReference(backupBlobName);
if (targetBlob.Exists())
{
lblStatus.ForeColor = Color.DarkGray;
lblStatus.Text = lblStatus.Text + " already Exists...not copied...";
}
else if (srcBlob.Properties.LastModified.Value.DateTime >= dateTimePicker1.Value)
{
var srcBlockBlobSasUri = string.Format("{0}{1}", srcBlob.Uri.AbsoluteUri, sas);
targetBlob.StartCopyFromBlob(new Uri(srcBlockBlobSasUri));
}
}
}
}
}
事前に感謝を...
答えをありがとう...指定されたファイルが最後に書き込まれた日時を設定することはできますか? –
私の答えが更新されました。 HTH。 –