/// <summary> /// Gets the s3 signed URL access (for https access). /// </summary> /// <param name="key">The key.</param> /// <param name="expirationMinutes">The expiration minutes.</param> /// <returns></returns> public string GetS3SignedUrlAccess(string key, int expirationMinutes) { Amazon.S3.Model.GetPreSignedUrlRequest request1 = new Amazon.S3.Model.GetPreSignedUrlRequest() { BucketName = s3Settings.BucketName, Key = key, Expires = DateTime.UtcNow.AddMinutes(expirationMinutes), Protocol = Amazon.S3.Protocol.HTTPS }; string url = s3Client.GetPreSignedURL(request1); return(url); }
/// <summary> /// Uploads the drawing to Amazon S3 /// </summary> /// <param name="dwgFilePath"></param> /// <returns>Presigned Url of the uploaded drawing file in Amazon S3</returns> public static String UploadDrawingToS3(String dwgFilePath) { String s3URL = String.Empty; try { if (!System.IO.File.Exists(dwgFilePath)) { return(s3URL); } String keyName = System.IO.Path.GetFileName(dwgFilePath); //be sure to connect to the endpoint which is the same region of your bucket! using (Amazon.S3.IAmazonS3 client = new Amazon.S3.AmazonS3Client(Amazon.RegionEndpoint.USWest2)) { Amazon.S3.Model.PutObjectRequest putRequest1 = new Amazon.S3.Model.PutObjectRequest { BucketName = S3BucketName, Key = keyName, ContentBody = "sample text" }; Amazon.S3.Model.PutObjectResponse response1 = client.PutObject(putRequest1); Amazon.S3.Model.PutObjectRequest putRequest2 = new Amazon.S3.Model.PutObjectRequest { BucketName = S3BucketName, Key = keyName, FilePath = dwgFilePath, ContentType = "application/acad" }; putRequest2.Metadata.Add("x-amz-meta-title", keyName); Amazon.S3.Model.PutObjectResponse response2 = client.PutObject(putRequest2); Amazon.S3.Model.GetPreSignedUrlRequest request1 = new Amazon.S3.Model.GetPreSignedUrlRequest { BucketName = S3BucketName, Key = keyName, Expires = DateTime.Now.AddMinutes(5) }; s3URL = client.GetPreSignedURL(request1); Console.WriteLine(s3URL); } } catch (Amazon.S3.AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine("For service sign up go to http://aws.amazon.com/s3"); } else { Console.WriteLine("Error occurred. Message:'{0}' when writing an object", amazonS3Exception.Message); } } return(s3URL); }
/// <summary> /// Uploads the drawing to Amazon S3 /// </summary> /// <param name="dwgFilePath"></param> /// <returns>Presigned Url of the uploaded drawing file in Amazon S3</returns> public static String UploadDrawingToS3(String dwgFilePath) { String s3URL = String.Empty; try { if (!System.IO.File.Exists(dwgFilePath)) return s3URL; String keyName = System.IO.Path.GetFileName(dwgFilePath); using (Amazon.S3.IAmazonS3 client = new Amazon.S3.AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1)) { Amazon.S3.Model.PutObjectRequest putRequest1 = new Amazon.S3.Model.PutObjectRequest { BucketName = S3BucketName, Key = keyName, ContentBody = "sample text" }; Amazon.S3.Model.PutObjectResponse response1 = client.PutObject(putRequest1); Amazon.S3.Model.PutObjectRequest putRequest2 = new Amazon.S3.Model.PutObjectRequest { BucketName = S3BucketName, Key = keyName, FilePath = dwgFilePath, ContentType = "application/acad" }; putRequest2.Metadata.Add("x-amz-meta-title", keyName); Amazon.S3.Model.PutObjectResponse response2 = client.PutObject(putRequest2); Amazon.S3.Model.GetPreSignedUrlRequest request1 = new Amazon.S3.Model.GetPreSignedUrlRequest { BucketName = S3BucketName, Key = keyName, Expires = DateTime.Now.AddMinutes(5) }; s3URL = client.GetPreSignedURL(request1); Console.WriteLine(s3URL); } } catch (Amazon.S3.AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine("For service sign up go to http://aws.amazon.com/s3"); } else { Console.WriteLine("Error occurred. Message:'{0}' when writing an object", amazonS3Exception.Message); } } return s3URL; }