Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
|
Amazon S3 - Add Text Object to Bucket
This example writes some text and metadata into the "Neo" object in the "chilkat" bucket:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set http = Server.CreateObject("Chilkat.Http") success = http.UnlockComponent("Anything for 30-day trial.") If (success <> 1) Then ' Unlock failed. Response.Write "<pre>" & Server.HTMLEncode(http.LastErrorText) & "</pre>" End If ' We'll need this for HMAC and MD5... set crypt = Server.CreateObject("Chilkat.Crypt2") success = crypt.UnlockComponent("Anything for 30-day trial.") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode(crypt.LastErrorText) & "</pre>" 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() ' This is the content of the text object to be added to ' the "chilkat" bucket: textData = "woah" ' This is the name of the object to be added: objName = "Neo" ' Calculate the MD5 hash of the object's content: crypt.HashAlgorithm = "md5" crypt.EncodingMode = "base64" crypt.Charset = "windows-1252" md5Hash = crypt.HashStringENC(textData) ' Create the string to be signed. ' IMPORTANT: ' If a Content-MD5 header is added (see below), then ' you also need to include the MD5 hash of the content ' here. ' The content-type (text/plain) must match the content-type ' passed to the PutText method (below). strToSign = "PUT" & vbLf & md5Hash & vbLf & "text/plain" & vbLf & curDateTime & vbLf & "/chilkat/" & objName ' We want SHA1 for the HMAC hash algorithm: crypt.HashAlgorithm = "sha1" ' These must be changed for your account: AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzz" 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 used is specified in the Host header. ' In this example, the object is added to the "chilkat" bucket: http.SetRequestHeader "Host","chilkat.s3.amazonaws.com" http.SetRequestHeader "Authorization",authValue http.SetRequestHeader "Date",curDateTime ' Do not GZIP the request body. To send a gzip compressed ' object, simply set this to 1 bGzip = 0 ' Automatically add an MD5 hash of the request body in the HTTP header ' (using the Content-MD5 header field). bMd5 = 1 url = "http://s3.amazonaws.com/" & objName strResponse = http.PutText(url,textData,"windows-1252","text/plain",bMd5,bGzip) If (http.LastStatus = 200) Then Response.Write "<pre>" & Server.HTMLEncode("Object added to bucket!") & "</pre>" ' Let's check out the response header anyway... Response.Write "<pre>" & Server.HTMLEncode( http.LastResponseHeader) & "</pre>" Else ' Failed. Show the last request header, response header, ' and response body. Response.Write "<pre>" & Server.HTMLEncode( http.LastHeader) & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "---") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( http.LastResponseHeader) & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "---") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( http.LastErrorText) & "</pre>" End If %> </body> </html> |
© 2000-2012 Chilkat Software, Inc. All Rights Reserved.