コード例 #1
0
        // TO UPLOAD STREAM TO AWS
        public string UploadStream(S3Request model)
        {
            //- Build Put Object
            PutObjectRequest s3PutRequest = new PutObjectRequest
            {
                BucketName = S3Bucket,
                CannedACL  = Amazon.S3.S3CannedACL.PublicRead,
                Key        = model.NewFileName
            };

            try
            {
                using (model.FileStream) {
                    s3PutRequest.InputStream = model.FileStream;
                    PutObjectResponse s3PutResponse = this.S3Client.PutObject(s3PutRequest);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            string url = ServiceUrl + "/" + S3Bucket + "/" + model.NewFileName;

            return(url);
        }
コード例 #2
0
        private static void service_BeforeAuthorize(object sender, S3RequestArgs e)
        {
            S3Request req = e.Request;

            req.ServicePoint.Expect100Continue = false;
            req.ReadWriteTimeout = 500;
            req.KeepAlive        = false;
        }
コード例 #3
0
        internal static S3RequestEventArgs Create(S3Request request, AmazonS3Config config)
        {
            S3RequestEventArgs args = new S3RequestEventArgs
            {
                OriginalRequest = request,
                Headers         = request.Headers,
                ServiceURL      = config.ServiceURL
            };

            return(args);
        }
コード例 #4
0
        public static void UpdateHeaders(this S3Request request, IReadOnlyDictionary <string, string> headers)
        {
            if (headers is null)
            {
                return;
            }

            foreach (var item in headers)
            {
                switch (item.Key)
                {
                case "Content-Encoding":
                    request.Content.Headers.ContentEncoding.Add(item.Value);
                    break;

                case "Content-Type":
                    request.Content ??= new ByteArrayContent(Array.Empty <byte>());
                    request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(item.Value);

                    break;

                // Skip list...
                case "Accept-Ranges":
                case "Content-Length":
                case "Date":
                case "ETag":
                case "Server":
                case "Last-Modified":
                case "x-amz-id-2":
                case "x-amz-expiration":
                case "x-amz-request-id2":
                case "x-amz-request-id":
                    break;

                default:
                    request.Headers.Add(item.Key, item.Value);

                    break;
                }
            }
        }
コード例 #5
0
ファイル: PdfService.cs プロジェクト: harrywar/CodeSamples
        // FOR CONTRACTS
        public string GenerateContractDocument(ContractInsertRequest model)
        {
            Document document = CreateContractDocument(model);

            document.UseCmykColor = true;

            const bool unicode = false;

            const PdfFontEmbedding embedding = PdfFontEmbedding.Always;

            DocumentRenderer renderer = new DocumentRenderer(document);

            PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(unicode, embedding);

            pdfRenderer.Document = document;

            pdfRenderer.RenderDocument();

            MemoryStream stream = new MemoryStream();

            pdfRenderer.PdfDocument.Save(stream, false);

            S3Request s3Request = new S3Request();

            s3Request.NewFileName = Guid.NewGuid().ToString() + ".pdf";

            s3Request.FileStream = stream;

            S3Handler s3Handler = new S3Handler();

            string filename = s3Handler.UploadStream(s3Request);

            return(filename);

            //byte[] bytes = stream.ToArray();

            //return bytes;
        }
コード例 #6
0
        public string UploadFile(S3Request model)
        {
            //- Build Put Object
            var s3PutRequest = new Amazon.S3.Model.PutObjectRequest
            {
                FilePath   = model.FilePath,
                BucketName = S3Bucket,
                CannedACL  = Amazon.S3.S3CannedACL.PublicRead
            };

            if (!string.IsNullOrWhiteSpace(model.NewFileName))
            {
                s3PutRequest.Key = model.NewFileName;
            }

            try
            {
                Amazon.S3.Model.PutObjectResponse s3PutResponse = this.S3Client.PutObject(s3PutRequest);

                if (model.DeleteLocalFileOnSuccess)
                {
                    if (System.IO.File.Exists(model.FilePath))
                    {
                        System.IO.File.Delete(model.FilePath);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            string url = ServiceUrl + "/" + S3Bucket + "/" + model.NewFileName;

            return(url);
        }
コード例 #7
0
        NameValueCollection GetHeaders(S3Request request)
        {
            var propertyInfo = typeof(S3Request).GetProperty("Headers", BindingFlags.NonPublic | BindingFlags.Instance);

            return((NameValueCollection)propertyInfo.GetValue(request, null));
        }
コード例 #8
0
ファイル: ThreeSharpQuery.cs プロジェクト: lsmolic/hangoutsrc
        /// <summary>
        /// Configures an HttpWebRequest with settings from the
        /// ThreeSharpConfig instance and the Request object instance
        /// </summary>
        private HttpWebRequest ConfigureWebRequest(Request request)
        {
            HttpWebRequest httpWebRequest = null;

            if (request.ServiceType == ThreeSharpServiceType.S3)
            {
                S3Request     s3Request = (S3Request)request;
                StringBuilder url       = new StringBuilder();
                String        finalUrl  = string.Empty;

                if (!String.IsNullOrEmpty(s3Request.RedirectUrl))
                {
                    url.Append(s3Request.RedirectUrl);
                }
                else
                {
                    if (s3Request.QueryList.ContainsKey("requestPayment"))
                    {
                        config.Format = CallingFormat.SUBDOMAIN;
                    }

                    url.Append(config.IsSecure ? "https://" : "http://");
                    url.Append(ThreeSharpUtils.BuildUrlBase(config.Server, config.Port, s3Request.BucketName, config.Format));

                    if (!String.IsNullOrEmpty(s3Request.Key))
                    {
                        url.Append(s3Request.Key);
                    }

                    // build the query string parameter
                    url.Append(ThreeSharpUtils.ConvertQueryListToQueryString(s3Request.QueryList));
                }

                httpWebRequest = WebRequest.Create(url.ToString()) as HttpWebRequest;
                httpWebRequest.AllowWriteStreamBuffering = false;
                httpWebRequest.AllowAutoRedirect         = false;
                httpWebRequest.UserAgent     = config.UserAgent;
                httpWebRequest.Method        = s3Request.Method;
                httpWebRequest.Timeout       = s3Request.Timeout;
                httpWebRequest.ContentType   = s3Request.ContentType;
                httpWebRequest.ContentLength = s3Request.BytesTotal;

                if (this.config.Proxy != null)
                {
                    httpWebRequest.Proxy = this.config.Proxy;
                }

                this.AddHeaders(httpWebRequest, s3Request.Headers);
                this.AddMetadataHeaders(httpWebRequest, s3Request.MetaData);
                this.AddAuthorizationHeader(httpWebRequest, s3Request);
            }
            else
            {
                AWS100Request aws100Request = (AWS100Request)request;
                StringBuilder url           = new StringBuilder();

                url.Append("https://");
                url.Append(config.Server);
                url.Append(":");
                url.Append("443");
                url.Append("/2008-06-30/distribution/");
                if (!string.IsNullOrEmpty(aws100Request.DistributionID))
                {
                    url.Append(aws100Request.DistributionID);
                    if (aws100Request.GetType() == typeof(DistributionUpdateRequest))
                    {
                        url.Append("/config");
                    }
                }

                httpWebRequest           = WebRequest.Create(url.ToString()) as HttpWebRequest;
                httpWebRequest.KeepAlive = true;
                httpWebRequest.AllowWriteStreamBuffering = false;
                httpWebRequest.AllowAutoRedirect         = false;
                httpWebRequest.UserAgent     = config.UserAgent;
                httpWebRequest.Method        = aws100Request.Method;
                httpWebRequest.Timeout       = aws100Request.Timeout;
                httpWebRequest.ContentType   = aws100Request.ContentType;
                httpWebRequest.ContentLength = aws100Request.BytesTotal;

                if (this.config.Proxy != null)
                {
                    httpWebRequest.Proxy = this.config.Proxy;
                }

                this.AddHeaders(httpWebRequest, aws100Request.Headers);
                this.AddMetadataHeaders(httpWebRequest, aws100Request.MetaData);
                this.AddAuthorizationHeader(httpWebRequest, aws100Request);
            }

            return(httpWebRequest);
        }