Example #1
0
        public bool UploadToAWS(MemoryStream ms, string filename)
        {
            this.ProgressBar.Start(filename, 105);

            try {
                TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
                request.UploadProgressEvent += displayProgress;
                request.AutoCloseStream      = false;
                request.BucketName           = bucketName;
                request.InputStream          = ms;
                request.Key = prefix + filename;


                if (!isPrivate)
                {
                    request.AddHeader("x-amz-acl", "public-read");
                }

                TransferUtility fileTransferUtility = new TransferUtility(AWSKey, AWSSecretKey);
                fileTransferUtility.Upload(request);
            }
            catch (Exception)
            {
                return(false);
            }

            ms.Dispose();
            this.ProgressBar.Done();
            return(true);
        }
Example #2
0
    public void UploadFile(string filePath, string toPath)
    {
        AsyncCallback callback      = new AsyncCallback(uploadComplete);
        var           uploadRequest = new TransferUtilityUploadRequest();

        uploadRequest.FilePath = filePath;
        uploadRequest.Key      = toPath;
        uploadRequest.AddHeader("x-amz-acl", "public-read");
        transferUtility.BeginUpload(uploadRequest, callback, null);
    }
Example #3
0
        protected override void ExecuteS3Task()
        {
            if (!File.Exists(this.SourceFile))
            {
                throw new BuildException("source-file does not exist: " + this.SourceFile);
            }

            using (TransferUtility transferUtility = new Amazon.S3.Transfer.TransferUtility(this.AccessKey, this.SecretAccessKey)) {
                TransferUtilityUploadRequest uploadRequest = new TransferUtilityUploadRequest {
                    BucketName = this.BucketName,
                    FilePath   = this.SourceFile,
                    Key        = this.DestinationFile
                };
                if (PublicRead)
                {
                    uploadRequest.AddHeader("x-amz-acl", "public-read");
                }
                transferUtility.Upload(uploadRequest);
            }
        }
        /// <summary>
        /// Uploads the specified content item to the remote blob storage.
        /// </summary>
        /// <param name="content">Descriptor of the item on the remote blob storage.</param>
        /// <param name="source">The source item's content stream.</param>
        /// <param name="bufferSize">Size of the upload buffer.</param>
        /// <returns>The length of the uploaded stream.</returns>
        public override long Upload(IBlobContent content, Stream source, int bufferSize)
        {
            var request = new TransferUtilityUploadRequest()
                          .WithBucketName(this.bucketName)
                          .WithKey(content.FilePath)
                          .WithPartSize(bufferSize)
                          .WithContentType(content.MimeType);

            //set the item's accessibility as public
            request.AddHeader("x-amz-acl", "public-read");

            //get it before the upload, because afterwards the stream is closed already
            long sourceLength = source.Length;

            using (MemoryStream str = new MemoryStream())
            {
                source.CopyTo(str);
                request.InputStream = str;

                this.transferUtility.Upload(request);
            }
            return(sourceLength);
        }
Example #5
0
        public void Upload()
        {
            // Loop through each file in the request
            for (int i = 0; i < HttpContext.Request.Files.Count; i++)
            {
                // Pointer to file
                var file = HttpContext.Request.Files[i];
                var filename = User.Identity.Name + "_" + DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds.ToString().Replace('.', '_') + "_" + file.FileName;
                int width = 0, height = 0;
                try
                {
                    using (var client = new TransferUtility(AuthConfig.AWSPUBLIC, AuthConfig.AWSPRIVATE))
                    {
                        using (var memoryStream = new MemoryStream())
                        {
                            using (var yourBitmap = new Bitmap(file.InputStream))
                            {
                                yourBitmap.Save(memoryStream, ImageFormat.Jpeg);

                                width  = yourBitmap.Width;
                                height = yourBitmap.Height;

                                AsyncCallback callback = new AsyncCallback(uploadComplete);
                                var           request  = new TransferUtilityUploadRequest();
                                request.BucketName = "TTPosts";
                                //create a hash of the user, the current time, and the file name
                                //to avoid collisions
                                request.Key         = filename;
                                request.InputStream = memoryStream;
                                //makes public
                                request.AddHeader("x-amz-acl", "public-read");
                                IAsyncResult ar = client.BeginUpload(request, callback, null);
                                client.EndUpload(ar);
                            }
                        }
                    }
                }
                catch (AmazonS3Exception amazonS3Exception)
                {
                    if (amazonS3Exception.ErrorCode != null &&
                        (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") ||
                         amazonS3Exception.ErrorCode.Equals("InvalidSecurity")))
                    {
                        Console.WriteLine("Please check the provided AWS Credentials.");
                        Console.WriteLine("If you haven't signed up for Amazon S3, please visit http://aws.amazon.com/s3");
                    }
                    else
                    {
                        Console.WriteLine("An error occurred with the message '{0}' when writing an object", amazonS3Exception.Message);
                    }
                    return;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }

                Posts p = new Posts()
                {
                    title = "$" + HttpContext.Request.Form["tags"], filename = "http://s3.amazonaws.com/TTPosts/" + filename, owner = WebSecurity.GetUserId(User.Identity.Name), dateuploaded = DateTime.UtcNow, width = width, height = height
                };

                new TTRESTService().PostPost(p);
            }
        }