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);
        }
Example #3
0
        /// <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);
        }