Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Amazon S3 - Add Text Object to BucketThis example writes some text and metadata into the "Neo" object in the "chilkat" bucket:
import sys import chilkat http = chilkat.CkHttp() success = http.UnlockComponent("Anything for 30-day trial.") if (success != True): # Unlock failed. print http.lastErrorText() sys.exit() # We'll need this for HMAC and MD5... crypt = chilkat.CkCrypt2() success = crypt.UnlockComponent("Anything for 30-day trial.") if (success != True): print crypt.lastErrorText() sys.exit() # 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.put_HashAlgorithm("md5") crypt.put_EncodingMode("base64") crypt.put_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" + "\n" + md5Hash + "\n" + "text/plain" + "\n" + curDateTime + "\n" + "/chilkat/" + objName # We want SHA1 for the HMAC hash algorithm: crypt.put_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.put_Charset("utf-8") # Indicate that Base64 output is desired: crypt.put_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 True bGzip = False # Automatically add an MD5 hash of the request body in the HTTP header # (using the Content-MD5 header field). bMd5 = True url = "http://s3.amazonaws.com/" + objName strResponse = http.putText(url,textData,"windows-1252","text/plain",bMd5,bGzip) if (http.get_LastStatus() == 200): print "Object added to bucket!" # Let's check out the response header anyway... print http.lastResponseHeader() else: # Failed. Show the last request header, response header, # and response body. print http.lastHeader() print "---" print http.lastResponseHeader() print "---" print http.lastErrorText() |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.