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; } }
protected void Send(AddObjectRequest addRequest) { var response = addRequest.GetResponse(); response.Close(); }