Python Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Python Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
Socket / SSL
SFTP
SMTP
Spider
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Amazon S3 - Add Text Object to Bucket

This example writes some text and metadata into the "Neo" object in the "chilkat" bucket:

 Chilkat Python Module Downloads for Windows, Linux, and MAC OS X

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()


 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.