public async Task ListIncompleteParts() { await CreateTempBucketAsync(async bucket => { InitiateMultipartUploadResponse initResp = await ObjectClient.InitiateMultipartUploadAsync(bucket, nameof(ListIncompleteParts)).ConfigureAwait(false); byte[] file = new byte[5 * 1024]; using (MemoryStream ms = new MemoryStream(file)) await ObjectClient.UploadPartAsync(bucket, nameof(ListIncompleteParts), 1, initResp.UploadId, ms).ConfigureAwait(false); ListMultipartUploadsResponse listResp = await BucketClient.ListMultipartUploadsAsync(bucket).ConfigureAwait(false); Assert.Equal(bucket, listResp.Bucket); Assert.Equal("ListIncompleteParts", listResp.NextKeyMarker); Assert.NotEmpty(listResp.NextUploadIdMarker); Assert.Equal(1000, listResp.MaxUploads); Assert.False(listResp.IsTruncated); S3Upload upload = Assert.Single(listResp.Uploads); Assert.Equal(listResp.NextKeyMarker, upload.Name); Assert.Equal(listResp.NextUploadIdMarker, upload.UploadId); Assert.Equal(TestConstants.TestUsername, upload.Initiator.Name); Assert.Equal(StorageClass.Standard, upload.StorageClass); Assert.Equal(DateTime.UtcNow, upload.Initiated.DateTime, TimeSpan.FromSeconds(5)); }).ConfigureAwait(false); }
public async Task ListObjects() { await CreateTempBucketAsync(async bucket => { //Create 3 objects in bucket, including an incomplete multipart upload await UploadAsync(bucket, "resource1").ConfigureAwait(false); await UploadAsync(bucket, "resource2").ConfigureAwait(false); InitiateMultipartUploadResponse initResp = await ObjectClient.InitiateMultipartUploadAsync(bucket, "multipart").ConfigureAwait(false); //List the objects List <S3Object> list = await BucketClient.GetBucketRecursiveAsync(bucket, true).ToListAsync().ConfigureAwait(false); //Only 2 objects should be present, as one of them is only initiated Assert.Equal(2, list.Count); Assert.Equal("resource1", list[0].Name); Assert.Equal("resource2", list[1].Name); //List multipart transfers List <S3Upload> uploads = await BucketClient.ListAllMultipartUploadsAsync(bucket).ToListAsync().ConfigureAwait(false); S3Upload upload = Assert.Single(uploads); Assert.Equal("multipart", upload.Name); }).ConfigureAwait(false); }
public async Task <IActionResult> FileUploadForm(FileUploadFormModal FileUpload) { using (var memoryStream = new MemoryStream()) { await FileUpload.FormFile.CopyToAsync(memoryStream); // Upload the file if less than 2 MB if (memoryStream.Length < 2097152) { string fileExtension = FileUpload.FormFile.FileName.Split(".")[1]; string randomId = Guid.NewGuid().ToString(); string fileName = randomId + "." + fileExtension; await S3Upload.UploadFileAsync(memoryStream, "egyptexcavation", "photos/" + fileName); string uploadUrl = "https://egyptexcavation.s3.amazonaws.com/photos/" + fileName; //_recordService.SavePhotoUrl(FileUpload.BurialID, uploadUrl); } else { ModelState.AddModelError("File", "The file is too large."); return(View(FileUpload)); } } return(View()); }
// GET: S3Upload public ActionResult Index() { var fileStorageProvider = new AmazonS3FileStorageProvider(); var fileUploadViewModel = new S3Upload ( fileStorageProvider.PublicKey, fileStorageProvider.PrivateKey, fileStorageProvider.BucketName, Url.Action("complete", "home", null, Request.Url.Scheme) ); fileUploadViewModel.SetPolicy ( fileStorageProvider.GetPolicyString ( fileUploadViewModel.FileId, fileUploadViewModel.RedirectUrl ) ); ViewBag.FormAction = fileUploadViewModel.FormAction; ViewBag.FormMethod = fileUploadViewModel.FormMethod; ViewBag.FormEnclosureType = fileUploadViewModel.FormEnclosureType; ViewBag.AWSAccessKey = fileUploadViewModel.AWSAccessKey; ViewBag.Acl = fileUploadViewModel.Acl; ViewBag.Base64EncodedPolicy = fileUploadViewModel.Base64EncodedPolicy; ViewBag.Signature = fileUploadViewModel.Signature; var DroneDoc = new DroneDocument(); return View(DroneDoc); }//ActionResult Index()
public async Task ListMultipartUploads() { await CreateTempBucketAsync(async bucket => { string objName = nameof(ListMultipartUploads) + "%"; CreateMultipartUploadResponse createResp = await MultipartClient.CreateMultipartUploadAsync(bucket, objName).ConfigureAwait(false); byte[] file = new byte[5 * 1024]; using (MemoryStream ms = new MemoryStream(file)) await MultipartClient.UploadPartAsync(bucket, objName, 1, createResp.UploadId, ms).ConfigureAwait(false); ListMultipartUploadsResponse listResp = await MultipartClient.ListMultipartUploadsAsync(bucket, req => req.EncodingType = EncodingType.Url).ConfigureAwait(false); Assert.Equal(bucket, listResp.Bucket); Assert.Equal(WebUtility.UrlEncode(objName), listResp.NextKeyMarker); Assert.NotEmpty(listResp.NextUploadIdMarker); Assert.Equal(1000, listResp.MaxUploads); Assert.False(listResp.IsTruncated); S3Upload upload = Assert.Single(listResp.Uploads); Assert.Equal(listResp.NextKeyMarker, upload.ObjectKey); Assert.Equal(listResp.NextUploadIdMarker, upload.UploadId); Assert.Equal(StorageClass.Standard, upload.StorageClass); Assert.Equal(DateTime.UtcNow, upload.Initiated.DateTime, TimeSpan.FromSeconds(5)); }).ConfigureAwait(false); }
// Raise the event protected virtual void OnS3Upload(string fileName) { //S3Upload(this, EventArgs.Empty); S3Upload?.Invoke(this, new UploadEventArgs() { FileName = fileName }); // means 👇 //if (S3Upload != null) // this is to ensure that if no subscriber is listening the event isn't raised //{ // S3Upload(this, new UploadEventArgs() { FileName = fileName }); //} }
public async Task <IActionResult> FileUploadForm(FileUploadForm FileUpload) { using (var memoryStream = new MemoryStream()) { await FileUpload.FormFile.CopyToAsync(memoryStream); // Upload the file if less than 2 MB if (memoryStream.Length < 2097152) { await S3Upload.UploadFileAsync(memoryStream, "intex-fagelgamous", "AKIAVY5M47Y5S26WCNPL"); } else { ModelState.AddModelError("File", "The file is too large."); } } return(View()); }
static void Main(string[] args) { S3Upload s3BLL = new S3Upload(); SendMail sendBLL = new SendMail(); string TeplatePath = System.Configuration.ConfigurationManager.AppSettings["MailTemplatePath"].ToString() + "MailContent.html"; string filePath = System.Configuration.ConfigurationManager.AppSettings["FilePath"].ToString(); //返回S3地址链接 string S3Path = s3BLL.localFileS3Upload(filePath); byte[] buffer = File.ReadAllBytes(filePath); string mailSubject = "Hospital Data Synchronization Task Succeed"; //string mailBody = "EXTERNAL<br/><br/><br/><br/>" + // "Hi Everyone,<br/><br/>" + // "Today hospital data synchronization task had been completed , please click link and download the attachment.<br/><br/>" + // "Download link:" + S3Path + // "<br/><br/> " + // "Best Regards<br/><br/>" + // "This is automatically sent by system. Please do not reply.<br/><br/>" + // "GSK monitors email communications sent to and from GSK in order to protect GSK, our employees, customers, suppliers and business partners, from cyber threats and loss of GSK Information. <br/>;" + // "GSK monitoring is conducted with appropriate confidentiality controls and in accordance with local laws and after appropriate consultation."; string mailBody = sendBLL.ReplaceText(TeplatePath, S3Path); //正式收件人 string mailTo = System.Configuration.ConfigurationManager.AppSettings["MailToUser"].ToString(); if (buffer.Length > 5242880) { sendBLL.AmazonSES(mailSubject, mailTo, mailBody, ""); } else { sendBLL.AmazonSES(mailSubject, mailTo, mailBody, filePath); } }
public async Task <IActionResult> Create(ImageUploadViewModel viewModel) { string objectKey = $"Burials/{viewModel.fileForm.FileName}-{DateTime.Now.ToString()}"; Image img = new Image { BurialId = Convert.ToDecimal(viewModel.BurialId), ImagePodecimaler = S3Upload.GeneratePreSignedURL(objectKey), Burial = _context.Burials.Where(x => x.BurialId == Convert.ToDecimal(viewModel.BurialId)).FirstOrDefault() }; if (ModelState.IsValid) { _context.Add(img); await _context.SaveChangesAsync(); //return RedirectToAction(nameof(Index)); } ViewData["BurialId"] = new SelectList(_context.Burials, "BurialId", "BurialId", img.BurialId); using (var memoryStream = new MemoryStream()) { await viewModel.fileForm.CopyToAsync(memoryStream); // Upload the file if less than 10 MB if (memoryStream.Length < 10485760) { await S3Upload.UploadFileAsync(memoryStream, "arn:aws:s3:us-east-1:524546685232:accesspoint/is410", objectKey); } else { ModelState.AddModelError("File", "The file is too large."); } } return(RedirectToAction("Details", "Burial", new { ID = viewModel.BurialId })); }
public ActionResult GCAApproval(int ID=0) { //to create gcaapproval if (!exLogic.User.hasAccess("FLIGHT.GCAAPPROVAL")) return RedirectToAction("NoAccess", "Home"); var fileStorageProvider = new AmazonS3FileStorageProvider(); var fileUploadViewModel = new S3Upload( fileStorageProvider.PublicKey, fileStorageProvider.PrivateKey, fileStorageProvider.BucketName, Url.Action("complete", "home", null, Request.Url.Scheme) ); fileUploadViewModel.SetPolicy( fileStorageProvider.GetPolicyString( fileUploadViewModel.FileId, fileUploadViewModel.RedirectUrl ) ); ViewBag.FormAction = fileUploadViewModel.FormAction; ViewBag.FormMethod = fileUploadViewModel.FormMethod; ViewBag.FormEnclosureType = fileUploadViewModel.FormEnclosureType; ViewBag.AWSAccessKey = fileUploadViewModel.AWSAccessKey; ViewBag.Acl = fileUploadViewModel.Acl; ViewBag.Base64EncodedPolicy = fileUploadViewModel.Base64EncodedPolicy; ViewBag.Signature = fileUploadViewModel.Signature; var GCAApprovalDoc = new GCA_Approval(); if (ID != 0) { GCAApprovalDoc.DroneID = ID; } if (ID != 0) { var olist = (from p in db.GCA_Approval where p.ApprovalID == ID select p).ToList(); if (olist.Count > 0) { GCAApprovalDoc.ApprovalID = olist[0].ApprovalID; GCAApprovalDoc.DroneID = olist[0].DroneID; GCAApprovalDoc.ApprovalName = olist[0].ApprovalName; GCAApprovalDoc.Coordinates = olist[0].Coordinates; GCAApprovalDoc.ApprovalDate = olist[0].ApprovalDate == null ? null : olist[0].ApprovalDate; GCAApprovalDoc.StartDate = olist[0].StartDate == null ? null : olist[0].StartDate; GCAApprovalDoc.EndDate = olist[0].EndDate == null ? null : olist[0].EndDate; GCAApprovalDoc.StartTime = olist[0].StartTime; GCAApprovalDoc.EndTime = olist[0].EndTime; GCAApprovalDoc.MinAltitude = olist[0].MinAltitude; GCAApprovalDoc.MaxAltitude = olist[0].MaxAltitude; GCAApprovalDoc.BoundaryInMeters = olist[0].BoundaryInMeters; } } return View(GCAApprovalDoc); }//ActionResult GCAApproval()
public void MarshalResponse(IConfig config, ListMultipartUploadsRequest request, ListMultipartUploadsResponse response, IDictionary <string, string> headers, Stream responseStream) { XmlSerializer s = new XmlSerializer(typeof(ListMultipartUploadsResult)); using (XmlTextReader r = new XmlTextReader(responseStream)) { r.Namespaces = false; ListMultipartUploadsResult listResult = (ListMultipartUploadsResult)s.Deserialize(r); if (listResult.EncodingType != null) { response.EncodingType = ValueHelper.ParseEnum <EncodingType>(listResult.EncodingType); } response.KeyMarker = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.KeyMarker) : listResult.KeyMarker; response.NextKeyMarker = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.NextKeyMarker) : listResult.NextKeyMarker; response.Prefix = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.Prefix) : listResult.Prefix; response.Delimiter = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.Delimiter) : listResult.Delimiter; response.Bucket = listResult.Bucket; response.UploadIdMarker = listResult.UploadIdMarker; response.NextUploadIdMarker = listResult.NextUploadIdMarker; response.MaxUploads = listResult.MaxUploads; response.IsTruncated = listResult.IsTruncated; if (listResult.CommonPrefixes != null) { response.CommonPrefixes = new List <string>(listResult.CommonPrefixes.Count); foreach (CommonPrefix prefix in listResult.CommonPrefixes) { response.CommonPrefixes.Add(prefix.Prefix); } } else { response.CommonPrefixes = Array.Empty <string>(); } if (listResult.Uploads != null) { response.Uploads = new List <S3Upload>(listResult.Uploads.Count); foreach (Upload listUpload in listResult.Uploads) { S3Upload s3Upload = new S3Upload(); s3Upload.ObjectKey = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listUpload.Key) : listUpload.Key; s3Upload.UploadId = listUpload.UploadId; if (listUpload.StorageClass != null) { s3Upload.StorageClass = ValueHelper.ParseEnum <StorageClass>(listUpload.StorageClass); } s3Upload.Initiated = listUpload.Initiated; if (listUpload.Owner != null) { s3Upload.Owner = new S3Identity(); s3Upload.Owner.Name = listUpload.Owner.DisplayName; s3Upload.Owner.Id = listUpload.Owner.Id; } if (listUpload.Initiator != null) { s3Upload.Initiator = new S3Identity(); s3Upload.Initiator.Name = listUpload.Initiator.DisplayName; s3Upload.Initiator.Id = listUpload.Initiator.Id; } response.Uploads.Add(s3Upload); } } else { response.Uploads = Array.Empty <S3Upload>(); } } }
public void MarshalResponse(ListMultipartUploadsRequest request, ListMultipartUploadsResponse response, IDictionary <string, string> headers, Stream responseStream) { XmlSerializer s = new XmlSerializer(typeof(ListMultipartUploadsResult)); using (XmlTextReader r = new XmlTextReader(responseStream)) { r.Namespaces = false; ListMultipartUploadsResult listResult = (ListMultipartUploadsResult)s.Deserialize(r); response.Bucket = listResult.Bucket; response.KeyMarker = listResult.KeyMarker; response.UploadIdMarker = listResult.UploadIdMarker; response.NextKeyMarker = listResult.NextKeyMarker; response.NextUploadIdMarker = listResult.NextUploadIdMarker; if (listResult.EncodingType != null) { response.EncodingType = EnumsNET.Enums.Parse <EncodingType>(listResult.EncodingType, EnumFormat.EnumMemberValue); } response.MaxUploads = listResult.MaxUploads; response.IsTruncated = listResult.IsTruncated; response.Prefix = listResult.Prefix; response.Delimiter = listResult.Delimiter; if (listResult.CommonPrefixes != null) { response.CommonPrefixes = new List <string>(listResult.CommonPrefixes.Count); foreach (CommonPrefix prefix in listResult.CommonPrefixes) { response.CommonPrefixes.Add(prefix.Prefix); } } else { response.CommonPrefixes = Array.Empty <string>(); } if (listResult.Uploads != null) { response.Uploads = new List <S3Upload>(listResult.Uploads.Count); foreach (Upload listUpload in listResult.Uploads) { S3Upload s3Upload = new S3Upload(); s3Upload.Name = listUpload.Key; s3Upload.UploadId = listUpload.UploadId; if (listUpload.StorageClass != null) { s3Upload.StorageClass = EnumsNET.Enums.Parse <StorageClass>(listUpload.StorageClass, EnumFormat.EnumMemberValue); } s3Upload.Initiated = listUpload.Initiated; if (listUpload.Owner != null) { s3Upload.Owner = new S3ObjectIdentity(); s3Upload.Owner.Name = listUpload.Owner.DisplayName; s3Upload.Owner.Id = listUpload.Owner.Id; } if (listUpload.Initiator != null) { s3Upload.Initiator = new S3ObjectIdentity(); s3Upload.Initiator.Name = listUpload.Initiator.DisplayName; s3Upload.Initiator.Id = listUpload.Initiator.Id; } response.Uploads.Add(s3Upload); } } else { response.Uploads = Array.Empty <S3Upload>(); } } }