Exemplo n.º 1
1
        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 );
            }
        }
        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);
            }
        }
Exemplo n.º 3
0
        public override async Task AddObject(FileProperties properties, Stream stream, bool overwrite,
                                             CancellationToken ct)
        {
            string key = ResolveLocalKey(properties.Key);

            var request = new TransferUtilityUploadRequest
                {
                    BucketName = _bucket,
                    InputStream = stream,
                    Key = key
                };

            request.AddHeader("x-amz-meta-yas4-ts", properties.Timestamp.ToString("o"));

            using (var util = new TransferUtility(_s3))
            {
                await util.UploadAsync(request).ConfigureAwait(false);
            }
        }
        /// <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;
        }