public async Task <ActionResult> DeleteFile(string fileKey) { string message = null; try { S3Wrapper s3Wrapper = new S3Wrapper(_appSettings.Value.AWSUniqueDbKey, _appSettings.Value.AWSAccessKey, _appSettings.Value.AWSSecrteKey); var status = await s3Wrapper.DeleteObject(fileKey, "s3"); if (status.HttpStatusCode == System.Net.HttpStatusCode.NoContent) { message = "ok"; } else { message = status.HttpStatusCode.ToString(); } return(Json(message)); } catch (Exception ex) { message = ex.Message; } return(Json(message)); }
public async Task <HttpResponseMessage> DownloadFile(string fileKey) { HttpResponseMessage result = null; try { S3Wrapper s3Wrapper = new S3Wrapper(_appSettings.Value.AWSUniqueDbKey, _appSettings.Value.AWSAccessKey, _appSettings.Value.AWSSecrteKey); var response = await s3Wrapper.DownloadObject(fileKey, "s3"); result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new StreamContent(response.ResponseStream); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); result.Content.Headers.Add("x-filename", fileKey.Split('-')[1]); result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = fileKey.Split('-')[1] }; } catch (Exception) { } return(result); }
public static string ToS3SignedUrl(this string url, string bucket) { if (string.IsNullOrEmpty(url)) { return(string.Empty); } var _s3Wrapper = new S3Wrapper(); return(_s3Wrapper.ToS3SignedUrl(url, bucket)); }
public async Task <ActionResult> UploadFilesAjax() { string message = string.Empty; try { long size = 0; var files = Request.Form.Files; foreach (var file in files) { var filename = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"'); size += file.Length; using (Stream fs = file.OpenReadStream()) { S3Wrapper s3Wrapper = new S3Wrapper(_appSettings.Value.AWSUniqueDbKey, _appSettings.Value.AWSAccessKey, _appSettings.Value.AWSSecrteKey); bool isBucketAvailable = await s3Wrapper.IsExistBucket("s3"); if (!isBucketAvailable) { await s3Wrapper.CreateBucket("s3"); } var response = await s3Wrapper.CreateObject( new Random().Next(50000, 100000) + "-" + filename, "s3", Path.GetExtension(file.FileName), fs as Stream); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { message = "ok"; } else { message = response.HttpStatusCode.ToString(); } } } } catch (Exception ex) { message = ex.Message; //throw; } return(Content(message)); }
public async Task <ActionResult> GetAllDocumentsExist() { object message = null; try { S3Wrapper s3Wrapper = new S3Wrapper(_appSettings.Value.AWSUniqueDbKey, _appSettings.Value.AWSAccessKey, _appSettings.Value.AWSSecrteKey); var files = await s3Wrapper.GetAllFilesByBucketName("s3"); return(Json(files.ToArray())); } catch (Exception ex) { message = ex.Message; } return(Json(message)); }
public int FindMissingRenditions() { var cnt = 0; var s3 = new S3Wrapper(); using (var ctx = new lfeAuthorEntities()) { var renditions = ctx.USER_VideosRenditions.OrderByDescending(x => x.InsertDate).ToList(); foreach (var rend in renditions) { var key = rend.CloudFrontPath.Replace("https://courses-videos-prod.beame.io/", "").Replace("http://uservideos.lfe.com/", ""); var meta = s3.GetS3FileMetaData(key, S3_VIDEO_BUCKET_NAME); if (meta == null) { cnt++; } } } return(cnt); }
public Program(S3Wrapper s3) => _s3 = s3;