Exemplo n.º 1
0
        /// <inheritdoc/>
        public StorageObject Convert(string containerName, string objectName, IHttpHeadersAbstraction headers, long?objectLength = null)
        {
            containerName.AssertIsNotNullOrEmpty("containerName");
            objectName.AssertIsNotNullOrEmpty("objectName");
            headers.AssertIsNotNull("headers");

            try
            {
                var lastModified = DateTime.Parse(headers["Last-Modified"].First());
                var eTag         = headers["ETag"].First();
                var length       = long.Parse(headers["Content-Length"].First());
                if (objectLength.HasValue)
                {
                    length = objectLength.Value;
                }
                var contentType = headers["Content-Type"].First();
                var metadata    = headers.Where(kvp => kvp.Key.StartsWith("X-Object-Meta")).ToDictionary(header => header.Key.Substring(14, header.Key.Length - 14), header => header.Value.First());

                return(CreateStorageObject(objectName, containerName, lastModified, eTag, length, contentType, metadata, headers));
            }
            catch (Exception ex)
            {
                throw new FormatException(string.Format("Storage object '{0}' could not be parsed.", objectName), ex);
            }
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public StorageAccount Convert(string name, IHttpHeadersAbstraction headers, string payload)
        {
            name.AssertIsNotNullOrEmpty("name");
            headers.AssertIsNotNull("headers");
            payload.AssertIsNotNull("payload");

            var containerConverter = this.ServiceLocator.Locate <IStorageContainerPayloadConverter>();

            try
            {
                var totalBytes      = long.Parse(headers["X-Account-Bytes-Used"].First());
                var totalObjects    = int.Parse(headers["X-Account-Object-Count"].First());
                var totalContainers = int.Parse(headers["X-Account-Container-Count"].First());
                var containers      = containerConverter.Convert(payload);
                var metadata        = headers.Where(kvp => kvp.Key.StartsWith("X-Account-Meta")).ToDictionary(header => header.Key.Substring(15, header.Key.Length - 15), header => header.Value.First());

                return(new StorageAccount(name, totalBytes, totalObjects, totalContainers, metadata, containers));
            }
            catch (Exception ex)
            {
                throw new FormatException(string.Format("Storage Account '{0}' payload could not be parsed.", name), ex);
            }
        }
        /// <inheritdoc/>
        public StorageAccount Convert(string name, IHttpHeadersAbstraction headers, string payload)
        {
            name.AssertIsNotNullOrEmpty("name");
            headers.AssertIsNotNull("headers");
            payload.AssertIsNotNull("payload");

            var containerConverter = this.ServiceLocator.Locate<IStorageContainerPayloadConverter>();

            try
            {
                var totalBytes = long.Parse(headers["X-Account-Bytes-Used"].First());
                var totalObjects = int.Parse(headers["X-Account-Object-Count"].First());
                var totalContainers = int.Parse(headers["X-Account-Container-Count"].First());
                var containers = containerConverter.Convert(payload);
                var metadata = headers.Where(kvp => kvp.Key.StartsWith("X-Account-Meta")).ToDictionary(header => header.Key.Substring(15, header.Key.Length - 15), header => header.Value.First());

                return new StorageAccount(name, totalBytes, totalObjects, totalContainers, metadata, containers);
            }
            catch (Exception ex)
            {
                throw new FormatException(string.Format("Storage Account '{0}' payload could not be parsed.", name), ex);
            }
        }
        /// <inheritdoc/>
        public StorageObject Convert(string containerName, string objectName, IHttpHeadersAbstraction headers, long? objectLength = null)
        {
            containerName.AssertIsNotNullOrEmpty("containerName");
            objectName.AssertIsNotNullOrEmpty("objectName");
            headers.AssertIsNotNull("headers");
           
            try
            {
                var lastModified = DateTime.Parse(headers["Last-Modified"].First());
                var eTag = headers["ETag"].First();
                var length = long.Parse(headers["Content-Length"].First());
                if (objectLength.HasValue)
                {
                    length = objectLength.Value;
                }
                var contentType = headers["Content-Type"].First();
                var metadata = headers.Where(kvp => kvp.Key.StartsWith("X-Object-Meta")).ToDictionary(header => header.Key.Substring(14, header.Key.Length - 14), header => header.Value.First());

                return CreateStorageObject(objectName, containerName, lastModified, eTag, length, contentType, metadata, headers);
            }
            catch (Exception ex)
            {
                throw new FormatException(string.Format("Storage object '{0}' could not be parsed.", objectName), ex);
            }
        }