حدث
٢ شوال، ١١ م - ٤ شوال، ١١ م
أكبر حدث تعلم Fabric وPower BI وSQL. 31 مارس – 2 أبريل. استخدم التعليمات البرمجية FABINSIDER لتوفير 400 دولار.
تسجيل اليوملم يعد هذا المتصفح مدعومًا.
بادر بالترقية إلى Microsoft Edge للاستفادة من أحدث الميزات والتحديثات الأمنية والدعم الفني.
يؤدي تعيين إصدار كائن ثنائي كبير الحجم تلقائيا إلى إنشاء إصدار سابق من كائن ثنائي كبير الحجم في أي وقت يتم تعديله أو حذفه. عند تمكين تعيين إصدار كائن ثنائي كبير الحجم، يمكنك استعادة إصدار سابق من كائن ثنائي كبير الحجم لاسترداد بياناتك إذا تم تعديله أو حذفه عن طريق الخطأ.
للحصول على حماية مثالية للبيانات، توصي Microsoft بتمكين تعيين إصدار كائن ثنائي كبير الحجم والحذف المبدئي لكائن ثنائي كبير الحجم لحساب التخزين الخاص بك. لمزيد من المعلومات، راجع تعيين إصدار كائن ثنائي كبير الحجم والحذف المبدئي للكائنات الثنائية كبيرة الحجم.
يوضح مثال التعليمات البرمجية التالي كيفية تشغيل إنشاء إصدار جديد باستخدام مكتبة عميل Azure Storage لـ .NET، الإصدار 12.5.1 أو إصدار لاحق. قبل تشغيل هذا المثال، تأكد من تمكين تعيين الإصدار لحساب التخزين لديك.
ينشئ المثال كائنًا ثنائيًا كبير الحجم للكتلة، ثم يقوم بتحديث بيانات تعريف الكائن. يؤدي تحديث بيانات تعريف الكائن إلى إنشاء إصدار جديد. يسترد المثال الإصدار الأولي والإصدار الحالي، ويوضح أن الإصدار الحالي فقط يتضمن بيانات التعريف.
public static async Task UpdateVersionedBlobMetadata(BlobContainerClient blobContainerClient,
string blobName)
{
try
{
// Create the container.
await blobContainerClient.CreateIfNotExistsAsync();
// Upload a block blob.
BlockBlobClient blockBlobClient = blobContainerClient.GetBlockBlobClient(blobName);
string blobContents = string.Format("Block blob created at {0}.", DateTime.Now);
byte[] byteArray = Encoding.ASCII.GetBytes(blobContents);
string initalVersionId;
using (MemoryStream stream = new MemoryStream(byteArray))
{
Response<BlobContentInfo> uploadResponse =
await blockBlobClient.UploadAsync(stream, null, default);
// Get the version ID for the current version.
initalVersionId = uploadResponse.Value.VersionId;
}
// Update the blob's metadata to trigger the creation of a new version.
Dictionary<string, string> metadata = new Dictionary<string, string>
{
{ "key", "value" },
{ "key1", "value1" }
};
Response<BlobInfo> metadataResponse =
await blockBlobClient.SetMetadataAsync(metadata);
// Get the version ID for the new current version.
string newVersionId = metadataResponse.Value.VersionId;
// Request metadata on the previous version.
BlockBlobClient initalVersionBlob = blockBlobClient.WithVersion(initalVersionId);
Response<BlobProperties> propertiesResponse = await initalVersionBlob.GetPropertiesAsync();
PrintMetadata(propertiesResponse);
// Request metadata on the current version.
BlockBlobClient newVersionBlob = blockBlobClient.WithVersion(newVersionId);
Response<BlobProperties> newPropertiesResponse = await newVersionBlob.GetPropertiesAsync();
PrintMetadata(newPropertiesResponse);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
static void PrintMetadata(Response<BlobProperties> propertiesResponse)
{
if (propertiesResponse.Value.Metadata.Count > 0)
{
Console.WriteLine("Metadata values for version {0}:", propertiesResponse.Value.VersionId);
foreach (var item in propertiesResponse.Value.Metadata)
{
Console.WriteLine("Key:{0} Value:{1}", item.Key, item.Value);
}
}
else
{
Console.WriteLine("Version {0} has no metadata.", propertiesResponse.Value.VersionId);
}
}
لسرد إصدارات الكائن الثنائي كبير الحجم، حدد المعلمة BlobStates مع حقل الإصدار . يتم سرد الإصدارات من الأقدم إلى الأحدث.
يوضح مثال التعليمات البرمجية التالي كيفية إدراج إصدارات الكائنات الثنائية كبيرة الحجم.
private static void ListBlobVersions(BlobContainerClient blobContainerClient,
string blobName)
{
try
{
// Call the listing operation, specifying that blob versions are returned.
// Use the blob name as the prefix.
var blobVersions = blobContainerClient.GetBlobs
(BlobTraits.None, BlobStates.Version, prefix: blobName)
.OrderByDescending(version => version.VersionId).Where(blob => blob.Name == blobName);
// Construct the URI for each blob version.
foreach (var version in blobVersions)
{
BlobUriBuilder blobUriBuilder = new BlobUriBuilder(blobContainerClient.Uri)
{
BlobName = version.Name,
VersionId = version.VersionId
};
if ((bool)version.IsLatestVersion.GetValueOrDefault())
{
Console.WriteLine("Current version: {0}", blobUriBuilder);
}
else
{
Console.WriteLine("Previous version: {0}", blobUriBuilder);
}
}
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
يمكنك إجراء عملية نسخ للترويج لإصدار عبر الكائن الثنائي كبير الحجم الأساسي الخاص به، طالما أن الكائن الثنائي كبير الحجم الأساسي في طبقة عبر الإنترنت (ساخنة أو باردة). يظل الإصدار، ولكن تتم الكتابة فوق وجهته بنسخة يمكن قراءتها وكتابتها.
يوضح مثال التعليمات البرمجية التالي كيفية نسخ إصدار كائن ثنائي كبير الحجم عبر الكائن الثنائي كبير الحجم الأساسي:
public static async Task<BlockBlobClient> CopyVersionOverBaseBlobAsync(
BlockBlobClient client,
string versionTimestamp)
{
// Instantiate BlobClient with identical URI and add version timestamp
BlockBlobClient versionClient = client.WithVersion(versionTimestamp);
// Restore the specified version by copying it over the base blob
await client.SyncUploadFromUriAsync(versionClient.Uri);
// Return the client object after the copy operation
return client;
}
لمعرفة المزيد حول إدارة إصدارات كائن ثنائي كبير الحجم باستخدام مكتبة عميل Azure Blob Storage ل .NET، راجع الموارد التالية.
حدث
٢ شوال، ١١ م - ٤ شوال، ١١ م
أكبر حدث تعلم Fabric وPower BI وSQL. 31 مارس – 2 أبريل. استخدم التعليمات البرمجية FABINSIDER لتوفير 400 دولار.
تسجيل اليومالتدريب
الوحدة النمطية
العمل مع ذاكرة Azure Blob - Training
تعلم كيفية استخدام مكتبة عميل تخزين Azure Blob لإنشاء موارد تخزين Blob وتحديثها.