public string AlmacenarCfdiFramework4(Stream cfdi, string Xml, string uuid) { var sharedAccessSignature = new StorageCredentialsSharedAccessSignature(ConfigurationManager.AppSettings["SharedAccesSignature"].Replace('|', '&')); var blobClient = new CloudBlobClient(ConfigurationManager.AppSettings["BlobStorageEndpoint"], sharedAccessSignature); blobClient.RetryPolicy = RetryPolicies.RetryExponential(15, TimeSpan.FromSeconds(25)); blobClient.Timeout = TimeSpan.FromMinutes(1); var blobContainer = blobClient .GetContainerReference(ConfigurationManager.AppSettings["ContainerName"]); var blob = blobContainer.GetBlobReference(uuid); if (cfdi.Length <= MaximumBlobSizeBeforeTransmittingAsBlocks) { XElement xdoc = XElement.Parse(Xml); string version = xdoc.Attribute("Version") == null ? "" : xdoc.Attribute("Version").Value; if (version != "") { blob.UploadFromStream(cfdi); blob.Metadata["versionCFDI"] = version; blob.SetMetadata(); } } else { var blockBlob = blobContainer.GetBlockBlobReference(blob.Uri.AbsoluteUri); blockBlob.UploadFromStream(cfdi); } return(blob.Uri.AbsoluteUri); }
public static string GetSasBlobUrl(string containerName, string fileName, string sas) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageAccountConnectionString"]); StorageCredentialsSharedAccessSignature sasCreds = new StorageCredentialsSharedAccessSignature(sas); CloudBlobClient sasBlobClient = new CloudBlobClient(storageAccount.BlobEndpoint, new StorageCredentialsSharedAccessSignature(sas)); CloudBlob blob = sasBlobClient.GetBlobReference(containerName + @"/" + fileName); return(blob.Uri.AbsoluteUri + sas); }
/// <summary> /// Parses the blob address query and returns snapshot and SAS. /// </summary> /// <param name="query">The query to parse.</param> /// <param name="snapshot">The snapshot value, if any.</param> /// <param name="sasCreds">The SAS credentials.</param> private static void ParseBlobAddressQuery(string query, out string snapshot, out StorageCredentialsSharedAccessSignature sasCreds) { snapshot = null; sasCreds = null; var queryParameters = HttpUtility.ParseQueryString(query); if (queryParameters.AllKeys.Contains(Constants.QueryConstants.Snapshot)) { snapshot = queryParameters[Constants.QueryConstants.Snapshot]; } SharedAccessSignatureHelper.ParseQuery(queryParameters, out sasCreds); }