Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

Amazon S3 - Add Text Object to Bucket

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

Download Chilkat Ruby Library

require 'chilkat'

http = Chilkat::CkHttp.new()
success = http.UnlockComponent("Anything for 30-day trial.")
if (success != true)
    #  Unlock failed.
    print http.lastErrorText() + "\n"
    exit
end

#  We'll need this for HMAC and MD5...
crypt = Chilkat::CkCrypt2.new()

success = crypt.UnlockComponent("Anything for 30-day trial.")
if (success != true)
    print crypt.lastErrorText() + "\n"
    exit
end

#  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!" + "\n"

    #  Let's check out the response header anyway...
    print http.lastResponseHeader() + "\n";

else

    #  Failed.  Show the last request header, response header,
    #  and response body.
    print http.lastHeader() + "\n";
    print "---" + "\n";
    print http.lastResponseHeader() + "\n";
    print "---" + "\n";
    print http.lastErrorText() + "\n";

end

 

Need a specific example? Send a request to support@chilkatsoft.com

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