· 10 years ago · Feb 26, 2016, 08:09 PM
1public static string AMAZONPUT(string Url, string UploadID, string FilePath, string SecurityToken, string PublicKey, string SecretKey, string Proxy)
2{
3 try {
4 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
5 request.Method = "PUT";
6 request.Accept = "*/*";
7 request.UserAgent = "Flipagram/5.10.3 (iPhone; iOS 8.4.1; Scale/2.00)";
8 request.Headers.Add("Accept-Language", "sv;q=1, en;q=0.9");
9 request.ContentType = "image/jpeg";
10 request.Headers.Add("x-amz-security-token", SecurityToken);
11 request.Headers.Add("Authorization", "AWS " + PublicKey + ":" + AmazonHash("PUT", GetMD5HashFromFile(FilePath), DateTime.UtcNow.ToString("r"), UploadID, "image/jpeg", SecurityToken, SecretKey));
12 request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
13 byte[] bytes = File.ReadAllBytes(FilePath);
14 request.ContentLength = bytes.Length;
15 request.KeepAlive = true;
16 request.Headers.Add("Date", DateTime.UtcNow.ToString("r"));
17
18 ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(HTTP.CertificateValidationCallBack);
19
20
21 if (!string.IsNullOrEmpty(Proxy)) {
22 Array ProxyA = Proxy.Split(":");
23
24 if (ProxyA.Length == 2) {
25 string PHost = ProxyA(0);
26 int PPort = ProxyA(1);
27 WebProxy WProxy = new WebProxy(PHost, PPort);
28
29 request.Proxy = WProxy;
30
31 } else if ((ProxyA.Length == 4)) {
32 string PHost = ProxyA(0);
33 int PPort = ProxyA(1);
34 string PUser = ProxyA(2);
35 string PPass = ProxyA(3);
36
37 WebProxy WProxy = new WebProxy(PHost, PPort);
38 WProxy.Credentials = new NetworkCredential(PUser, PPass);
39 request.Proxy = WProxy;
40 }
41 }
42
43 using (Stream stream = request.GetRequestStream) {
44 stream.Write(bytes, 0, bytes.Length);
45 }
46
47 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse) {
48 Stream responseStream = response.GetResponseStream;
49
50 if (response.ContentEncoding.ToLower.Contains("gzip")) {
51 responseStream = new GZipStream(responseStream, CompressionMode.Decompress);
52 } else if (response.ContentEncoding.ToLower.Contains("deflate")) {
53 responseStream = new DeflateStream(responseStream, CompressionMode.Decompress);
54 }
55 string HTML = new StreamReader(responseStream, Encoding.Default).ReadToEnd;
56 responseStream.Close();
57 response.Close();
58 return HTML;
59 }
60
61 } catch (Exception Ex) {
62 return Ex.Message;
63 }
64}