コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: VideoExtensions.cs プロジェクト: zenit1/beame-lfe
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
 public Program(S3Wrapper s3) => _s3 = s3;