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 })); }
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); }
public string GeneratePreSignedURLForPut(string key, GetPresignedUrlDTO dto, Dictionary <string, string> metadata) { return(GeneratePreSignedURL(key, HttpVerb.PUT, dto, metadata)); }
public string GeneratePresignedURLForGet(string key, GetPresignedUrlDTO dto = null) { return(GeneratePreSignedURL(key, HttpVerb.GET, dto)); }