إنشاء SAS لخدمة لحاوية أو كائن ثنائي كبير الحجم
يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين الخاص بك. عند إنشاء توقيع وصول مشترك، فإنك تحدد قيوده، بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، والأذونات المتوفرة لديه على هذه الموارد، ومدة صلاحية توقيع الوصول المشترك.
يتم توقيع كل توقيع وصول مشترك بمفتاح. يمكنك التوقيع على توقيع وصول مشترك بإحدى طريقتين:
- باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Azure Active Directory (Azure AD). توقيع الوصول المشترك الذي تم توقيعه باستخدام بيانات اعتماد Microsoft Azure Active Directory هو توقيع وصول مشترك لتفويض مستخدم.
- باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة و توقيع الوصول المشترك للحساب باستخدام مفتاح حساب التخزين.
يوفر توقيع الوصول المشترك لتفويض المستخدم أماناً فائقاً لتوقيع الوصول المشترك الموقع باستخدام مفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض المستخدم عندما يكون ذلك ممكناً. لمزيد من المعلومات، راجع منح وصول محدود إلى البيانات مع توقيعات الوصول المشتركة (SAS).
توضح هذه المقالة كيفية استخدام مفتاح حساب التخزين لإنشاء SAS لخدمة لحاوية أو كائن ثنائي كبير الحجم مع مكتبة عميل تخزين Azure لتخزين الكائنات الثنائية كبيرة الحجم.
إنشاء SAS لخدمة لحاوية كائنات ثنائية كبيرة الحجم
يقوم مثال التعليمات البرمجية التالي بإنشاء SAS لحاوية. إذا تم توفير اسم لنهج وصول مخزن موجود، فسيرتبط هذا النهج بتوقيع الوصول المشترك. إذا لم يتم توفير نهج وصول مخزن، فستقوم التعليمات البرمجية بإنشاء توقيع وصول مشترك مخصص على الحاوية.
يتم توقيع SAS لخدمة باستخدام مفتاح اختصار الحساب. استخدم فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS. بعد ذلك، قم بإنشاء عنصر BlobSasBuilder جديد واستدعاء ToSasQueryParameters للحصول على سلسلة رمز SAS المميز.
private static Uri GetServiceSasUriForContainer(BlobContainerClient containerClient,
string storedPolicyName = null)
{
// Check whether this BlobContainerClient object has been authorized with Shared Key.
if (containerClient.CanGenerateSasUri)
{
// Create a SAS token that's valid for one hour.
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = containerClient.Name,
Resource = "c"
};
if (storedPolicyName == null)
{
sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
sasBuilder.SetPermissions(BlobContainerSasPermissions.Read);
}
else
{
sasBuilder.Identifier = storedPolicyName;
}
Uri sasUri = containerClient.GenerateSasUri(sasBuilder);
Console.WriteLine("SAS URI for blob container is: {0}", sasUri);
Console.WriteLine();
return sasUri;
}
else
{
Console.WriteLine(@"BlobContainerClient must be authorized with Shared Key
credentials to create a service SAS.");
return null;
}
}
إنشاء SAS لخدمة لكائن ثنائي كبير الحجم
يقوم مثال التعليمات البرمجية التالي بإنشاء SAS على كائن ثنائي كبير الحجم. إذا تم توفير اسم لنهج وصول مخزن موجود، فسيرتبط هذا النهج بتوقيع الوصول المشترك. إذا لم يتم توفير نهج وصول مخزن، فستقوم التعليمات البرمجية بإنشاء توقيع وصول مشترك مخصص على الكائن الثنائي كبير الحجم.
يتم توقيع SAS لخدمة باستخدام مفتاح اختصار الحساب. استخدم فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS. بعد ذلك، قم بإنشاء عنصر BlobSasBuilder جديد واستدعاء ToSasQueryParameters للحصول على سلسلة رمز SAS المميز.
private static Uri GetServiceSasUriForBlob(BlobClient blobClient,
string storedPolicyName = null)
{
// Check whether this BlobClient object has been authorized with Shared Key.
if (blobClient.CanGenerateSasUri)
{
// Create a SAS token that's valid for one hour.
BlobSasBuilder sasBuilder = new BlobSasBuilder()
{
BlobContainerName = blobClient.GetParentBlobContainerClient().Name,
BlobName = blobClient.Name,
Resource = "b"
};
if (storedPolicyName == null)
{
sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
sasBuilder.SetPermissions(BlobSasPermissions.Read |
BlobSasPermissions.Write);
}
else
{
sasBuilder.Identifier = storedPolicyName;
}
Uri sasUri = blobClient.GenerateSasUri(sasBuilder);
Console.WriteLine("SAS URI for blob is: {0}", sasUri);
Console.WriteLine();
return sasUri;
}
else
{
Console.WriteLine(@"BlobClient must be authorized with Shared Key
credentials to create a service SAS.");
return null;
}
}
إنشاء SAS لخدمة لدليل
في حساب تخزين مع تمكين مساحة أسماء هرمية، يمكنك إنشاء SAS لخدمة لدليل. لإنشاء SAS لخدمة، تأكد من تثبيت الإصدار 12.5.0 أو أحدث من حزمة Azure.Storage.Files.DataLake.
يوضح المثال التالي كيفية إنشاء SAS لخدمة لدليل باستخدام مكتبة عميل v12 لـ .NET:
private static Uri GetServiceSasUriForDirectory(DataLakeDirectoryClient directoryClient,
string storedPolicyName = null)
{
if (directoryClient.CanGenerateSasUri)
{
// Create a SAS token that's valid for one hour.
DataLakeSasBuilder sasBuilder = new DataLakeSasBuilder()
{
// Specify the file system name, the path, and indicate that
// the client object points to a directory.
FileSystemName = directoryClient.FileSystemName,
Resource = "d",
IsDirectory = true,
Path = directoryClient.Path,
};
// If no stored access policy is specified, create the policy
// by specifying expiry and permissions.
if (storedPolicyName == null)
{
sasBuilder.ExpiresOn = DateTimeOffset.UtcNow.AddHours(1);
sasBuilder.SetPermissions(DataLakeSasPermissions.Read |
DataLakeSasPermissions.Write |
DataLakeSasPermissions.List);
}
else
{
sasBuilder.Identifier = storedPolicyName;
}
// Get the SAS URI for the specified directory.
Uri sasUri = directoryClient.GenerateSasUri(sasBuilder);
Console.WriteLine("SAS URI for ADLS directory is: {0}", sasUri);
Console.WriteLine();
return sasUri;
}
else
{
Console.WriteLine(@"DataLakeDirectoryClient must be authorized with Shared Key
credentials to create a service SAS.");
return null;
}
}
موارد للتطوير باستخدام .NET
توفر الارتباطات أدناه موارد مفيدة للمطورين الذين يستخدمون موقع تخزين مكتبة العميل Azure لـ .NET.
واجهات برمجة التطبيقات الشائعة لتخزين Azure
واجهات برمجة تطبيقات تخزين كائن ثنائي كبير الحجم
- الوثائق المرجعية لواجهة برمجة التطبيقات
- التعليمات البرمجية لمصدر المكتبة
- حزمة (NuGet) للإصدار 11.x
- حزمة (NuGet) للإصدار 12.x
- عينات
أدوات .NET
موارد للتطوير باستخدام JavaScript
توفر الارتباطات أدناه موارد مفيدة للمطورين الذين يستخدمون مكتبة عميل تخزين Azure لـ JavaScript
واجهات برمجة تطبيقات تخزين كائن ثنائي كبير الحجم
- مكتبة عميل الكائنات الثنائية كبيرة الحجم لتخزين Azure لـ JavaScript
- التعليمات البرمجية لمصدر المكتبة
- الحزمة (npm)
- الوثائق المرجعية لواجهة برمجة التطبيقات