コード例 #1
0
        public Task <IGetBlobStrategy> CreateGetBlobStrategyAsync(GetBlobRequest getBlobRequest)
        {
            getBlobRequest.ValidateArgument(nameof(getBlobRequest));

            var container = cloudBlobClient.GetContainerReference(getBlobRequest.ContainerName.ToLower());
            var blob      = container.GetBlockBlobReference(getBlobRequest.BlobName);

            var sasStartTime      = DateTime.UtcNow.Add(urlStartOffset);
            var sasExpirationTime = DateTime.UtcNow.Add(urlDuration);

            var sasBlobPolicy = new SharedAccessBlobPolicy
            {
                SharedAccessStartTime  = sasStartTime,
                SharedAccessExpiryTime = sasExpirationTime,
                Permissions            = SharedAccessBlobPermissions.Read
            };

            var strategyConfiguration = new HttpGetBlobConfiguration
            {
                Url = (blob.Uri + blob.GetSharedAccessSignature(sasBlobPolicy)),
                UrlExpirationUtc = sasExpirationTime
            };

            return(Task.FromResult(new HttpGetBlobStrategy(strategyConfiguration) as IGetBlobStrategy));
        }
        public Task <IGetBlobStrategy> CreateGetBlobStrategyAsync(GetBlobRequest getBlobRequest)
        {
            getBlobRequest.ValidateArgument(nameof(getBlobRequest));

            var expirationTimeUtc = DateTime.UtcNow.Add(urlDuration);

            var getBlobUrl = urlSigner.Sign(
                getBlobRequest.ContainerName,
                getBlobRequest.BlobName,
                expirationTimeUtc,
                HttpMethod.Get);

            var strategyConfiguration = new HttpGetBlobConfiguration
            {
                Url = getBlobUrl,
                UrlExpirationUtc = expirationTimeUtc
            };

            return(Task.FromResult(new HttpGetBlobStrategy(strategyConfiguration) as IGetBlobStrategy));
        }
コード例 #3
0
        public Task <IGetBlobStrategy> CreateGetBlobStrategyAsync(GetBlobRequest getBlobRequest)
        {
            getBlobRequest.ValidateArgument(nameof(getBlobRequest));

            var urlExpirationTime = DateTime.UtcNow.Add(urlDuration);

            var urlRequest = new GetPreSignedUrlRequest
            {
                BucketName = getBlobRequest.ContainerName,
                Expires    = urlExpirationTime,
                Key        = getBlobRequest.BlobName,
                Protocol   = Protocol.HTTPS,
                Verb       = HttpVerb.GET
            };

            var strategyConfiguration = new HttpGetBlobConfiguration
            {
                Url = s3Client.GetPreSignedURL(urlRequest),
                UrlExpirationUtc = urlExpirationTime
            };

            return(Task.FromResult(new HttpGetBlobStrategy(strategyConfiguration) as IGetBlobStrategy));
        }