|
|
Amazon S3 - Delete Bucket (REST API)
Deletes an Amazon S3 bucket using the REST API. This example deletes the bucket named "chilkat3".
<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
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
' 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()
' Delete the bucket named "chilkat3"
strToSign = "DELETE" & vbLf & vbLf & vbLf & curDateTime & vbLf & "/chilkat3/"
' We want SHA1 for the HMAC hash algorithm:
crypt.HashAlgorithm = "sha1"
' These must be changed for your account:
AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzzz"
AWSSecretAccessKey = "zzzzzzzzzzzzzzzzzzzzzzzzzzz"
' 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 deleted is specified in the Host header.
' In this example, the "chilkat3" bucket is deleted
http.SetRequestHeader "Host","chilkat3.s3.amazonaws.com"
http.SetRequestHeader "Authorization",authValue
http.SetRequestHeader "Date",curDateTime
' Send the DELETE request.
responseStr = http.QuickDeleteStr("http://s3.amazonaws.com/")
If (responseStr = 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 response string, and
' a response status of 204.
If (http.LastStatus = 204) Then
Response.Write "Bucket deleted!" & "<br>"
' Let's check out the response header anyway...
Response.Write Server.HTMLEncode( http.LastResponseHeader) & "<br>"
Else
' Is this a temporary redirect?
If (http.LastStatus = 307) Then
' The new endpoint is in the XML contained within responseStr.
set xml = Server.CreateObject("Chilkat_9_5_0.Xml")
xml.LoadXml responseStr
endpoint = xml.GetChildContent("Endpoint")
responseStr = http.QuickDeleteStr(endpoint)
If (http.LastStatus = 204) Then
Response.Write "Bucket deleted after redirect!" & "<br>"
' Let's check out the response header anyway...
Response.Write Server.HTMLEncode( http.LastResponseHeader) & "<br>"
Else
' What happened???
Response.Write Server.HTMLEncode( "LastStatus: " _
& http.LastStatus) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( responseStr) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
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
Else
' What response is this???
Response.Write Server.HTMLEncode( "LastStatus: " _
& http.LastStatus) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
Response.Write Server.HTMLEncode( responseStr) & "<br>"
Response.Write Server.HTMLEncode( "---") & "<br>"
' 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
End If
%>
</body>
</html>
|