Example #1
0
        /// <summary>
        /// Creates a new <see cref="BlobMetadata"/> instance from a <see cref="IDictionary{string, string}"/> of metadata.
        /// </summary>
        /// <param name="metadata"></param>
        /// <returns></returns>
        internal static BlobMetadata FromDictionary(IDictionary <string, string> metadata, bool isBase64Encoded = true)
        {
            BlobMetadata result = new BlobMetadata();

            Type t = typeof(BlobMetadata);

            foreach (var kvp in metadata)
            {
                if (t.GetProperty(kvp.Key) == null)
                {
                    continue;
                }

                string value = kvp.Value;
                if (isBase64Encoded)
                {
                    //all metadata in storage are currently base64 encoded to bypass ASCII only limitation https://github.com/Azure/azure-sdk-for-net/issues/178
                    value = Encoding.UTF8.GetString(Convert.FromBase64String(kvp.Value));
                }

                result.m_Metadata[kvp.Key] = value;
            }

            return(result);
        }
Example #2
0
 /// <summary>
 /// Create a new <see cref="AzureBlob"/> from an Azure storage blob properties.
 /// </summary>
 /// <param name="blobProperties"></param>
 /// <returns></returns>
 public static AzureBlob FromBlobProperties(string blobPath, BlobProperties blobProperties, IDictionary <string, string> blobMetadata)
 {
     return(new AzureBlob
     {
         Path = blobPath,
         Checksum = blobProperties.ContentMD5,
         ContentType = blobProperties.ContentType,
         LastModified = blobProperties.LastModified.Value,
         Length = blobProperties.Length,
         Metadata = BlobMetadata.FromDictionary(blobMetadata)
     });
 }
 /// <summary>
 /// Initializes a new instance of the class.
 /// </summary>
 /// <param name="stream"></param>
 /// <param name="metadata"></param>
 public BlobStreamDecorator(Stream stream, BlobMetadata metadata)
 {
     m_Stream = stream ?? throw new ArgumentNullException(nameof(stream));
     Metadata = metadata ?? throw new ArgumentNullException(nameof(metadata));
 }