|
|
Amazon S3 - Create Bucket with PUT Request
Demonstrates how to create an Amazon S3 bucket by sending a PUT HTTP request.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
set http = Server.CreateObject("Chilkat_9_5_0.Http")
success = http.UnlockComponent("Anything for 30-day trial.")
If (success <> 1) Then
' Unlock failed.
Response.Write http.LastErrorText & "<br>"
End If
' The HTTP component now includes a method to generate
' the current date/time in RFC 2616 compliant format.
' Note: The GenTimeStamp method is available as a pre-release (as of 18-June-2008).
' It will become available in the next new version dated after
' 18-June-2008.
curDateTime = http.GenTimeStamp()
Response.Write curDateTime & "<br>"
' The PUT request operation with a bucket URI creates a new bucket.
strToSign = "PUT" & vbLf & vbLf & vbLf & curDateTime & vbLf & "/chilkat/"
set crypt = Server.CreateObject("Chilkat_9_5_0.Crypt2")
success = crypt.UnlockComponent("Anything for 30-day trial.")
If (success <> 1) Then
Response.Write crypt.LastErrorText & "<br>"
End If
' We want SHA1 for the HMAC hash algorithm:
crypt.HashAlgorithm = "sha1"
' These must be changed for your account:
AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzzz"
AWSSecretAccessKey = "zzzzzzzzzzzzzzzzzzzzzzzzzzzz"
' Set the HMAC secret key:
crypt.SetHmacKeyString AWSSecretAccessKey
' By setting the charset = "utf-8", the string will be converted
' to utf-8 (internal to the Chilkat component) prior to signing:
crypt.Charset = "utf-8"
' Indicate that Base64 output is desired:
crypt.EncodingMode = "base64"
signature = crypt.HmacStringENC(strToSign)
authValue = "AWS " & AWSAccessKeyId & ":" & signature
' The bucket to be created is specified in the Host header.
' In this example, the "chilkat" bucket is created:
http.SetRequestHeader "Host","chilkat.s3.amazonaws.com"
http.SetRequestHeader "Authorization",authValue
http.SetRequestHeader "Date",curDateTime
http.SetRequestHeader "Content-Length","0"
xmlResponse = http.QuickPutStr("http://s3.amazonaws.com/")
If (xmlResponse = vbNullString ) Then
' Failed. Show the last request header, response header,
' and response body.
Response.Write Server.HTMLEncode( http.LastHeader) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( http.LastResponseHeader) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( http.LastErrorText) & "<br>"
Else
' Success is indicated by an empty xmlResponse string, and
' a response status of 200.
If (http.LastStatus = 200) Then
Response.Write "Bucket created!" & "<br>"
' Let's check out the response header anyway...
Response.Write Server.HTMLEncode( http.LastResponseHeader) & "<br>"
Else
' Failed. Show the last request header, response header,
' and response body.
Response.Write Server.HTMLEncode( http.LastHeader) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( http.LastResponseHeader) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( http.LastErrorText) & "<br>"
End If
End If
%>
</body>
</html>
|