Azure SDK for .NET의 NuGet 패키지는 어떻게 사용할 수 있습니까? 그리고 샘플도 갖고 싶다!
15387 단어 AzureAzureStorageC#.NET
Azure SDK의 NuGet 패키지가 혼란스러워서 혼란
Azure를 사용한 애플리케이션 개발을 시도했을 때 NuGet 패키지가 난립되어 매우 곤란했습니다. Microsoft.Azure로 시작하는 것, Azure로 시작하는 것, Fluent가 붙어 있거나 붙어 있지 않거나 심지어 세상에 있는 샘플 프로그램도 이들이 혼재하고 있어, 이미 엉망이야.
예를 들어 Blob Storage를 사용하려고 하면 Microsoft 공식 NuGet 패키지만으로도 이렇다.
거기서 이것들을 정리해, 어떤 때에 어느 패키지를 사용하면 좋은지 알도록(듯이) 했다.
패키지 분류
Azure Storage 패키지를 예로 분류합니다. "~판"은 마음대로 명명.
패키지에는 크게 나누어서 서비스 클라이언트계와 자원 관리계가 있다.
서비스 클라이언트
Blob 컨테이너를 만들거나 Blob을 업로드하는 패키지입니다.
리소스 관리
Storage Account를 만들거나 수정하는 패키지.
덧붙여서 통상판과 Fluent판이란 GitHub 리포지토리도 나뉘어 있다
그래서 결국 어느 것이 사용되어야합니까?
좋아하는 것 사용하면 좋다. 안정적이고 새로운 것은 ↓
다음에 각 패키지를 사용한 샘플 프로그램을 실고 있으므로 참고로.
서비스 클라이언트 샘플
Storage Account에 blob 컨테이너를 만들어 blob을 업로드하는 샘플 프로그램.
윈드 w 엇갈림. S 호랑이
// Install-Package WindowsAzure.Storage
var connectionString = "storage-connection-string";
var account = CloudStorageAccount.Parse(connectionString);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("test-container");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlockBlobReference("test-blob.txt");
await blob.UploadTextAsync("test blob content");
var content = await blob.DownloadTextAsync();
Console.WriteLine(content);
Microsoft.Azure.Storage.Blob
WindowsAzure.Storage와 동일
// Install-Package Microsoft.Azure.Storage.Blob
var connectionString = "storage-connection-string";
var account = CloudStorageAccount.Parse(connectionString);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("test-container-2");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlockBlobReference("test-blob-2.txt");
await blob.UploadTextAsync("test blob content 2");
var content = await blob.DownloadTextAsync();
Console.WriteLine(content);
Azure.Storage.Blobs
Microsoft.Azure.Storage.Blob에서 바뀌어 REST API에 충실한 느낌. 조금 불편감.
// Install-Package Azure.Storage.Blobs
var connectionString = "storage-connection-string";
var containerClient = new BlobContainerClient(connectionString, "test-container-3");
await containerClient.CreateIfNotExistsAsync();
var blobClient = containerClient.GetBlobClient("bloblo.txt");
var stream = new MemoryStream(Encoding.UTF8.GetBytes("blob content222"));
await blobClient.UploadAsync(stream, overwrite: true);
var downloadInfo = await blobClient.DownloadAsync();
var contentStream = downloadInfo.Value.Content;
var content = new StreamReader(contentStream).ReadToEnd();
Console.WriteLine(content);
리소스 관리 샘플
ServicePrincipal을 사용하여 Storage Account를 나열하는 샘플 프로그램.
미 closo ft. 아즈레. 던지기 표면 t. S 호랑이
인증이 귀찮다.
// Install-Package Microsoft.Azure.Management.Storage
// Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
var tenantId= "00000000-0000-0000-0000-000000000000";
var subscriptionId = "00000000-0000-0000-0000-000000000000";
var clientId = "00000000-0000-0000-0000-000000000000";
var clientSecret = "azure-application-secret";
var context = new AuthenticationContext("https://login.windows.net/" + tenantId);
var clientCredential = new ClientCredential(clientId, clientSecret);
var tokenResponse = await context.AcquireTokenAsync("https://management.azure.com/", clientCredential);
var accessToken = new TokenCredentials(tokenResponse.AccessToken);
var client = new StorageManagementClient(accessToken);
client.SubscriptionId = subscriptionId;
var storageAccounts = await client.StorageAccounts.ListAsync();
foreach (var acc in storageAccounts)
{
Console.WriteLine(acc.Name);
}
Microsoft.Azure.Management.Fluent
뭐 사용하기 쉬울지도?
// Install-Package Microsoft.Azure.Management.Fluent
// 注意:Microsoft.Azure.Management.Storage.Fluent ではない
var tenantId= "00000000-0000-0000-0000-000000000000";
var subscriptionId = "00000000-0000-0000-0000-000000000000";
var clientId = "00000000-0000-0000-0000-000000000000";
var clientSecret = "azure-application-secret";
var cred = new AzureCredentialsFactory()
.FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);
var az = Azure
.Authenticate(cred)
.WithSubscription(subscriptionId);
var storageAccounts = await az.StorageAccounts.ListAsync();
foreach (var acc in storageAccounts)
{
Console.WriteLine(acc.Name);
}
사이고에게
이런 패키지를 난립시켜 개발자를 혼란시킨 Microsoft 씨에게는 크게 반성해 주셨으면 합니다
Reference
이 문제에 관하여(Azure SDK for .NET의 NuGet 패키지는 어떻게 사용할 수 있습니까? 그리고 샘플도 갖고 싶다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takutoy/items/f46f002d9b5f59c77b27텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)