public static void Upload(Stream stream, String objectName)
        {
            S3Service service = GetService();

            long len = stream.Position;

            stream.Seek(0, SeekOrigin.Begin);

            AddObjectRequest req = new AddObjectRequest(service, Program.Config.BucketName, objectName)
            {
                CannedAcl     = CannedAcl.PublicRead,
                ContentType   = "image/" + Program.Config.ImageType,
                ContentLength = len
            };

            IAsyncResult uploadAsync = req.BeginGetRequestStream(a =>
            {
                using (Stream outStream = req.EndGetRequestStream(a))
                {
                    try
                    {
                        var buffer   = new byte[len > 65536 ? 65536 : len];
                        var position = 0;
                        while (position < stream.Length)
                        {
                            var read = stream.Read(buffer, 0, buffer.Length);
                            outStream.Write(buffer, 0, read);
                            position += read;
                        }
                        outStream.Flush();

                        stream.Close();
                        stream.Dispose();
                        stream = null;
                        buffer = null;

                        using (AddObjectResponse response = req.GetResponse())
                        {
                            string url = null;
                            if (Program.Config.CloudFront != null && Program.Config.CloudFront.Length > 0)
                            {
                                url = "http://" + Program.Config.CloudFront + "/" + objectName;
                            }
                            else
                            {
                                url = "http://" + Program.Config.Region + "/" + Program.Config.BucketName + "/" + objectName;
                            }
                            FormMain.DefaultInstance.Invoke((MethodInvoker) delegate
                            {
                                FormMain.DefaultInstance.UploadComplete(url);
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        FormMain.DefaultInstance.Invoke((MethodInvoker) delegate
                        {
                            FormMain.DefaultInstance.UploadFailed();
                        });
                    }
                    finally
                    {
                        //GC.Collect();
                    }
                }
            }, null);
        }
        public static void Upload(Stream stream)
        {
            S3Service service = GetService();

            string objectName = Program.Config.ObjectPrefix + DateTime.Now.Ticks / TimeSpan.TicksPerSecond + "." + Program.Config.ImageType.ToLower();

            long len = stream.Position;
            stream.Seek(0, SeekOrigin.Begin);

            AddObjectRequest req = new AddObjectRequest(service, Program.Config.BucketName, objectName)
            {
                CannedAcl = CannedAcl.PublicRead,
                ContentType = "image/" + Program.Config.ImageType,
                ContentLength = len
            };

            IAsyncResult uploadAsync = req.BeginGetRequestStream(a =>
            {
                using (Stream outStream = req.EndGetRequestStream(a))
                {
                    try
                    {
                        var buffer = new byte[len > 65536 ? 65536 : len];
                        var position = 0;
                        while (position < stream.Length)
                        {
                            var read = stream.Read(buffer, 0, buffer.Length);
                            outStream.Write(buffer, 0, read);
                            position += read;
                        }
                        outStream.Flush();

                        stream.Close();
                        stream.Dispose();
                        stream = null;
                        buffer = null;

                        using (AddObjectResponse response = req.GetResponse())
                        {
                            string url = null;
                            if (Program.Config.CloudFront != null && Program.Config.CloudFront.Length > 0)
                            {
                                url = "http://" + Program.Config.CloudFront + "/" + objectName;
                            }
                            else
                            {
                                url = "http://" + Program.Config.Region + "/" + Program.Config.BucketName + "/" + objectName;
                            }
                            FormMain.DefaultInstance.Invoke((MethodInvoker)delegate
                            {
                                FormMain.DefaultInstance.UploadComplete(url);
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        FormMain.DefaultInstance.Invoke((MethodInvoker)delegate
                        {
                            FormMain.DefaultInstance.UploadFailed();
                        });
                    }
                    finally
                    {
                        //GC.Collect();
                    }
                }
            }, null);
        }
 private void Createfolder(string path)
 {
     try
     {
         string relativePath = path.Replace(Utilities.Path + "\\", "");
         if (relativePath.ToLower().IndexOf("shared") < 0)
         {
             var addobjectrequest = new AddObjectRequest(_service, Utilities.MyConfig.BucketKey, relativePath + "/") { ContentLength = 0 };
             addobjectrequest.GetResponse();
             _syncStatus.Enqueue("Creating folder - " + relativePath);
             //_applicationUpates.Enqueue(new AppUpdateInfo { Key = relativePath.Replace("\\", "/"), LastModifiedTime = new DirectoryInfo(path).LastWriteTime, Status = UpdateStatus.Update });
             ProcessApplicationUpdates(new AppUpdateInfo { Key = relativePath.Replace("\\", "/"), LastModifiedTime = new DirectoryInfo(path).LastWriteTime, Status = UpdateStatus.Update }, false, string.Empty);
         }
     }
     catch (Exception)
     {
         return;
     }
 }
示例#4
0
 protected void Send(AddObjectRequest addRequest)
 {
     var response = addRequest.GetResponse();
     response.Close();
 }