public ErrorTypes WriteFile(string strPath, System.IO.Stream oStream, out int nReadWriteBytes)
        {
            ErrorTypes eResult = ErrorTypes.StorageWrite;

            nReadWriteBytes = (int)oStream.Length;
            try
            {
                string strFileKey = GetFilePath(strPath);
                using (Amazon.S3.AmazonS3 oS3Client = Amazon.AWSClientFactory.CreateAmazonS3Client(m_oRegion))
                {
                    Amazon.S3.Model.PutObjectRequest oRequest = new Amazon.S3.Model.PutObjectRequest();
                    oRequest.WithBucketName(m_strBucketName).WithKey(strFileKey).WithInputStream(oStream);

                    using (Amazon.S3.Model.PutObjectResponse oResponse = oS3Client.PutObject(oRequest))
                    {
                        oResponse.Dispose();
                    }
                }
            }
            catch
            {
                nReadWriteBytes = 0;
            }

            return(eResult);
        }
Example #2
0
        public async System.Threading.Tasks.Task UploadFile(string filePath, string s3Bucket, string newFileName, bool deleteLocalFileOnSuccess, IFormFile fileUploaded)
        {
            //save in s3
            Amazon.S3.Model.PutObjectRequest s3PutRequest = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest = new Amazon.S3.Model.PutObjectRequest();

            using (var ms = new MemoryStream())
            {
                fileUploaded.CopyTo(ms);
                var    fileBytes = ms.ToArray();
                string s         = Convert.ToBase64String(fileBytes);
                s3PutRequest.InputStream = ms;
                var parsedContentDisposition = ContentDispositionHeaderValue.Parse(fileUploaded.ContentDisposition);
                //document.Name = parsedContentDisposition.FileName.TrimStart('\"').TrimEnd('\"');
            }



            //s3PutRequest.FilePath = filePath;
            s3PutRequest.BucketName = s3Bucket;
            s3PutRequest.CannedACL  = Amazon.S3.S3CannedACL.PublicRead;

            //key - new file name
            if (!string.IsNullOrWhiteSpace(newFileName))
            {
                s3PutRequest.Key = newFileName;
            }

            s3PutRequest.Headers.ExpiresUtc = new DateTime(2020, 1, 1);

            try
            {
                Amazon.S3.Model.PutObjectResponse s3PutResponse = await this.S3Client.PutObjectAsync(s3PutRequest);

                if (deleteLocalFileOnSuccess)
                {
                    ////Delete local file
                    //if (System.IO.File.Exists(filePath))
                    //{
                    //    System.IO.File.Delete(filePath);
                    //}
                }
            }
            catch (Exception ex)
            {
                //handle exceptions
            }
        }
Example #3
0
        public void UploadFile(bool deleteLocalFileOnSuccess, Tuple <string, string> pathScreenshot, string campaign, string userName, string userLastName, string platform)
        {
            // PATH A RECUPERER
            if (pathScreenshot.Item1.Contains("LARGE"))
            {
                screenType = "Large";
            }
            else
            {
                screenType = "Simple";
            }
            string s3Bucket = bucket + "/" + _hndlr.GetStringSha256Hash(userName + userLastName) + "/" + _hndlr.GetStringSha256Hash(campaign) + "/" + platform + "/" + screenType;

            //sauvegarde S3
            Amazon.S3.Model.PutObjectRequest s3PutRequest = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest            = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest.FilePath   = pathScreenshot.Item1;
            s3PutRequest.BucketName = s3Bucket;
            s3PutRequest.CannedACL  = S3CannedACL.PublicRead;
            //Clef - nouveau nom de fichier
            if (!string.IsNullOrWhiteSpace(pathScreenshot.Item1))
            {
                s3PutRequest.Key = pathScreenshot.Item2;
            }
            s3PutRequest.Headers.Expires = new DateTime(2020, 1, 1);
            try
            {
                Amazon.S3.Model.PutObjectResponse s3PutResponse = this.S3Client.PutObject(s3PutRequest);
                if (deleteLocalFileOnSuccess)
                {
                    //Delete local file
                    if (File.Exists(pathScreenshot.Item2))
                    {
                        File.Delete(pathScreenshot.Item2);
                    }
                }
            }
            catch (Exception ex)
            {
                //handle exceptions
            }
        }
        public ErrorTypes CreateDirectory(string strPath)
        {
            ErrorTypes eResult = ErrorTypes.StorageCreateDir;

            try
            {
                string strDirKey = GetDirPath(strPath);
                using (Amazon.S3.AmazonS3 oS3Client = Amazon.AWSClientFactory.CreateAmazonS3Client(m_oRegion))
                {
                    Amazon.S3.Model.PutObjectRequest oRequest = new Amazon.S3.Model.PutObjectRequest();
                    oRequest.WithBucketName(m_strBucketName).WithKey(strDirKey).WithContentBody(string.Empty);

                    using (Amazon.S3.Model.PutObjectResponse oResponse = oS3Client.PutObject(oRequest))
                    {
                        eResult = ErrorTypes.NoError;
                    }
                }
            }
            catch
            {
            }
            return(eResult);
        }
Example #5
0
        /// <summary>
        /// Uploads a file to s3.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <param name="fileBytes">The file bytes.</param>
        /// <param name="contentType">Type of the content.</param>
        public void UploadFileToS3(string key, byte[] fileBytes, string contentType, Guid fileUUID)
        {
            //http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpNET.html
            //http://stackoverflow.com/questions/18635963/asp-net-uploading-a-file-to-amazon-s3

            var stream = new System.IO.MemoryStream(fileBytes);

            stream.Position = 0;

            var putRequest1 = new Amazon.S3.Model.PutObjectRequest
            {
                BucketName  = s3Settings.BucketName,
                Key         = key,
                InputStream = stream,
                ContentType = contentType,
                CannedACL   = new Amazon.S3.S3CannedACL(s3Settings.DefaultUploadAcl),
                ServerSideEncryptionMethod = Amazon.S3.ServerSideEncryptionMethod.None
            };

            // DEVELOPER NOTE: this this function with appfile.js file
            putRequest1.Metadata.Add("uuid", fileUUID.ToString("N"));
            Amazon.S3.Model.PutObjectResponse response1 = s3Client.PutObject(putRequest1);
        }
Example #6
0
        public async System.Threading.Tasks.Task UploadFileAsync(string filePath, string s3Bucket, string newFileName, bool deleteLocalFileOnSuccess, byte[] renderedBytes)
        {
            //save in s3
            Amazon.S3.Model.PutObjectRequest s3PutRequest = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest = new Amazon.S3.Model.PutObjectRequest();

            s3PutRequest.InputStream = new MemoryStream(renderedBytes);
            //s3PutRequest.FilePath = filePath;
            s3PutRequest.BucketName = s3Bucket;
            s3PutRequest.CannedACL  = Amazon.S3.S3CannedACL.PublicRead;

            //key - new file name
            if (!string.IsNullOrWhiteSpace(newFileName))
            {
                s3PutRequest.Key = newFileName;
            }

            s3PutRequest.Headers.ExpiresUtc = new DateTime(2025, 1, 1);

            try
            {
                Amazon.S3.Model.PutObjectResponse s3PutResponse = await this.S3Client.PutObjectAsync(s3PutRequest);

                if (deleteLocalFileOnSuccess)
                {
                    ////Delete local file
                    //if (System.IO.File.Exists(filePath))
                    //{
                    //    System.IO.File.Delete(filePath);
                    //}
                }
            }
            catch (Exception ex)
            {
                //handle exceptions
            }
        }
Example #7
0
        public void UploadFile(string filePath, string newFileName, string s3Bucket = null, bool deleteLocalFileOnSuccess = true)
        {
            //save in s3
            Amazon.S3.Model.PutObjectRequest s3PutRequest = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest            = new Amazon.S3.Model.PutObjectRequest();
            s3PutRequest.FilePath   = filePath;
            s3PutRequest.BucketName = (s3Bucket != null) ? s3Bucket : FileService.s3Bucket;
            s3PutRequest.CannedACL  = Amazon.S3.S3CannedACL.PublicRead;

            //key - new file name
            if (!string.IsNullOrWhiteSpace(newFileName))
            {
                s3PutRequest.Key = newFileName;
            }

            s3PutRequest.Headers.Expires = new DateTime(2020, 1, 1);

            try
            {
                Amazon.S3.Model.PutObjectResponse s3PutResponse = this.S3Client.PutObject(s3PutRequest);

                if (deleteLocalFileOnSuccess)
                {
                    //Delete local file
                    if (System.IO.File.Exists(filePath))
                    {
                        System.IO.File.Delete(filePath);
                    }
                }
            }
            catch (Exception ex)
            {
                Exception exp = ex;
                //handle exceptions
            }
        }
Example #8
0
        /// <summary>
        /// Put an object to an S3 bucket
        /// from a stream.
        /// </summary>
        /// <param name="bucket">The name of the bucket to upload to.</param>
        /// <param name="key">The key to store the object as on S3.</param>
        /// <param name="stream">The stream representing the file data.</param>
        /// <param name="storageClass">The Amazon.S3.S3StorageClass for the file (default standard)</param>
        /// <returns></returns>
        public static Amazon.S3.Model.PutObjectResponse PutObjectResponse(string bucket, string key, Stream stream, Amazon.S3.S3StorageClass storageClass = null)
        {
            Amazon.S3.Model.PutObjectResponse response = new Amazon.S3.Model.PutObjectResponse();
            using (Amazon.S3.IAmazonS3 client = new Factory().S3Client())
            {
                Amazon.S3.Model.PutObjectRequest request = new Amazon.S3.Model.PutObjectRequest()
                {
                    BucketName = bucket,
                    Key = key,
                    StorageClass = (storageClass == null ? Amazon.S3.S3StorageClass.Standard : storageClass),
                    InputStream = stream
                };

                response = client.PutObject(request);
            }
            return response;
        }
        /// <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);
        }