internal BlobMetrics(string version, bool enabled, bool?includeApis, BlobRetentionPolicy retentionPolicy) { Version = version; Enabled = enabled; IncludeApis = includeApis; RetentionPolicy = retentionPolicy; }
//------------------------------------------------- // Enable diagnostic logs //------------------------------------------------- public void EnableDiagnosticLogs() { var connectionString = Constants.connectionString; BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); BlobServiceProperties serviceProperties = blobServiceClient.GetProperties().Value; serviceProperties.Logging.Delete = true; BlobRetentionPolicy retentionPolicy = new BlobRetentionPolicy(); retentionPolicy.Enabled = true; retentionPolicy.Days = 2; serviceProperties.Logging.RetentionPolicy = retentionPolicy; blobServiceClient.SetProperties(serviceProperties); Console.WriteLine("Diagnostic logs are now enabled"); }
//------------------------------------------------- // Update log retention period //------------------------------------------------- public void UpdateLogRetentionPeriod() { var connectionString = Constants.connectionString; // <Snippet_ViewRetentionPeriod> BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString); QueueServiceClient queueServiceClient = new QueueServiceClient(connectionString); BlobServiceProperties blobServiceProperties = blobServiceClient.GetProperties().Value; QueueServiceProperties queueServiceProperties = queueServiceClient.GetProperties().Value; Console.WriteLine("Retention period for logs from the blob service is: " + blobServiceProperties.Logging.RetentionPolicy.Days.ToString()); Console.WriteLine("Retention period for logs from the queue service is: " + queueServiceProperties.Logging.RetentionPolicy.Days.ToString()); // </Snippet_ViewRetentionPeriod> // <Snippet_ModifyRetentionPeriod> BlobRetentionPolicy blobRetentionPolicy = new BlobRetentionPolicy(); blobRetentionPolicy.Enabled = true; blobRetentionPolicy.Days = 4; QueueRetentionPolicy queueRetentionPolicy = new QueueRetentionPolicy(); queueRetentionPolicy.Enabled = true; queueRetentionPolicy.Days = 4; blobServiceProperties.Logging.RetentionPolicy = blobRetentionPolicy; blobServiceProperties.Cors = null; queueServiceProperties.Logging.RetentionPolicy = queueRetentionPolicy; queueServiceProperties.Cors = null; blobServiceClient.SetProperties(blobServiceProperties); queueServiceClient.SetProperties(queueServiceProperties); Console.WriteLine("Retention policy for blobs and queues is updated"); // </Snippet_ModifyRetentionPeriod> }
// </Snippet_GetAccountSASToken> //------------------------------------------------- // Use Account SAS Token //------------------------------------------------- // <Snippet_UseAccountSAS> private static void UseAccountSAS(Uri blobServiceUri, string sasToken) { var blobServiceClient = new BlobServiceClient (new Uri($"{blobServiceUri}?{sasToken}"), null); BlobRetentionPolicy retentionPolicy = new BlobRetentionPolicy(); retentionPolicy.Enabled = true; retentionPolicy.Days = 7; blobServiceClient.SetProperties(new BlobServiceProperties() { HourMetrics = new BlobMetrics() { RetentionPolicy = retentionPolicy, Version = "1.0" }, MinuteMetrics = new BlobMetrics() { RetentionPolicy = retentionPolicy, Version = "1.0" }, Logging = new BlobAnalyticsLogging() { Write = true, Read = true, Delete = true, RetentionPolicy = retentionPolicy, Version = "1.0" } }); // The permissions granted by the account SAS also permit you to retrieve service properties. BlobServiceProperties serviceProperties = blobServiceClient.GetProperties().Value; Console.WriteLine(serviceProperties.HourMetrics.RetentionPolicy); Console.WriteLine(serviceProperties.HourMetrics.Version); }