Esempio n. 1
0
        public string GetPresignedUrl(string docId, string area, [FromBody] GetPresignedUrlDTO dto)
        {
            // Could come from request as well
            var key  = docId + "/" + area + "/" + dto.FileName;
            var user = securityContext.GetUser();

            Console.WriteLine("Fetched user's data");
            Console.WriteLine(user.GivenName);
            Console.WriteLine(user.Id);
            var metadata = new Dictionary <string, string>
            {
                { "userId", user.Id }
            };
            var url = s3.GeneratePreSignedURLForPut(key, dto, metadata);

            return(Jsoner.Convert(new { url, key }));
        }
Esempio n. 2
0
        private string GeneratePreSignedURL(string key, HttpVerb verb, GetPresignedUrlDTO dto = null, Dictionary <string, string> metadata = null)
        {
            double duration  = 600;
            string urlString = "";

            try
            {
                GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
                {
                    BucketName = GetBucketName(),
                    Key        = key,
                    Expires    = DateTime.UtcNow.AddSeconds(duration),
                    Verb       = verb
                };
                if (metadata != null)
                {
                    foreach (var item in metadata.Keys)
                    {
                        Console.WriteLine("Adding metadata " + item + ":" + metadata[item]);
                        request.Headers["x-amz-meta-" + item] = metadata[item];
                    }
                }
                if (dto != null)
                {
                    request.ResponseHeaderOverrides.ContentType = dto.ContentType;
                }

                urlString = GetClient().GetPreSignedURL(request);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            return(urlString);
        }
Esempio n. 3
0
 public string GeneratePreSignedURLForPut(string key, GetPresignedUrlDTO dto, Dictionary <string, string> metadata)
 {
     return(GeneratePreSignedURL(key, HttpVerb.PUT, dto, metadata));
 }
Esempio n. 4
0
 public string GeneratePresignedURLForGet(string key, GetPresignedUrlDTO dto = null)
 {
     return(GeneratePreSignedURL(key, HttpVerb.GET, dto));
 }