Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. Imports System.Collections.Generic
  2. Imports System.IO
  3. Imports System.Linq
  4. Imports System.Net
  5. Imports System.Security.Cryptography
  6. Imports System.Text
  7. Imports System.Threading.Tasks
  8. Module Module1
  9. Sub Main()
  10. Dim b As New Programa
  11. b.UploadFile()
  12. 'b.DownloadFile()
  13. End Sub
  14. End Module
  15.  
  16. Class Programa
  17. Private Const KeyId As String = "yourkey"
  18. Private Const AccessKey As String = "nOUdL/youraccess"
  19. Private Const S3Url As String = "https://s3.amazonaws.com/"
  20.  
  21. Public Sub DownloadFile()
  22.  
  23. Dim bucketName As String = "celso711"
  24. Dim FileName As String = "file.png"
  25. Dim timeStamp As String = String.Format("{0:r}", DateTime.UtcNow)
  26. Dim stringToConvert As String = Convert.ToString((Convert.ToString((Convert.ToString("GET" & vbLf + vbLf + vbLf + vbLf + "x-amz-date:") & timeStamp) + vbLf + "/") & bucketName) + "/") & FileName
  27.  
  28. Dim ae = New UTF8Encoding()
  29. Dim signature = New HMACSHA1() With { _
  30. .Key = ae.GetBytes(AccessKey) _
  31. }
  32. Dim bytes = ae.GetBytes(stringToConvert)
  33. Dim moreBytes = signature.ComputeHash(bytes)
  34. Dim encodedCanonical = Convert.ToBase64String(moreBytes)
  35.  
  36. ' Send the request
  37. Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create(Convert.ToString((Convert.ToString("https://") & bucketName) + ".s3.amazonaws.com" + "/") & FileName), HttpWebRequest)
  38. 'request.ContentType = "application/octet-stream";
  39. request.Headers.Add("x-amz-date", timeStamp)
  40. request.Headers.Add("Authorization", "AWS " + KeyId + ":" + encodedCanonical)
  41. request.Method = "GET"
  42.  
  43. ' Get the response
  44. Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
  45. Dim ReceiveStream As Stream = response.GetResponseStream()
  46.  
  47. Console.WriteLine(response.StatusCode)
  48. End Sub
  49.  
  50. Public Sub UploadFile()
  51. Dim fileData = File.ReadAllBytes("C:file.png")
  52.  
  53. Dim timeStamp As String = String.Format("{0:r}", DateTime.UtcNow)
  54.  
  55. Dim stringToConvert As String = (Convert.ToString("PUT" & vbLf + vbLf + "application/octet-stream" & vbLf + vbLf + "x-amz-acl:public-read" + vbLf + "x-amz-date:") & timeStamp) + vbLf + "/celso711/file.png"
  56. 'resource
  57. Dim ae = New UTF8Encoding()
  58. Dim signature = New HMACSHA1() With { _
  59. .Key = ae.GetBytes(AccessKey) _
  60. }
  61. Dim bytes = ae.GetBytes(stringToConvert)
  62. Dim moreBytes = signature.ComputeHash(bytes)
  63. Dim encodedCanonical = Convert.ToBase64String(moreBytes)
  64.  
  65. Dim url = "https://bucket.s3.amazonaws.com/file.png"
  66.  
  67. Dim request = TryCast(WebRequest.Create(url), HttpWebRequest)
  68. request.Method = "PUT"
  69. request.Headers("x-amz-date") = timeStamp
  70. request.Headers("x-amz-acl") = "public-read"
  71. request.ContentType = "application/octet-stream"
  72. request.ContentLength = fileData.Length
  73. request.Headers("Authorization") = (Convert.ToString("AWS ") & KeyId) + ":" + encodedCanonical
  74.  
  75. Dim requestStream = request.GetRequestStream()
  76. requestStream.Write(fileData, 0, fileData.Length)
  77. requestStream.Close()
  78.  
  79. Using response = TryCast(request.GetResponse(), HttpWebResponse)
  80. Dim reader = New StreamReader(response.GetResponseStream())
  81. Dim data = reader.ReadToEnd()
  82. End Using
  83. End Sub
  84. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement