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
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

Amazon S3 - Create Bucket with Constraint

Create an Amazon S3 bucket with a constraint using the REST API.

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

#  Create the XML contraint for the bucket:
#  <CreateBucketConfiguration>
#          <LocationConstraint>EU</LocationConstraint>
#  </CreateBucketConfiguration>
xml = Chilkat::CkXml.new()
xml.put_Tag("CreateBucketConfiguration")
xml.NewChild2("LocationConstraint","EU")
print xml.getXml() + "\n";

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

#  The PUT request operation with a bucket URI creates a new bucket.
strToSign = "PUT" + "\n" + "\n" + "text/xml" + "\n" + curDateTime + "\n" + "/chilkat2/"

#  We want SHA1 for the HMAC hash algorithm:
crypt.put_HashAlgorithm("sha1")

#  These must be changed for your account:
AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzz"
AWSSecretAccessKey = "zzzzzzzzzzzzzzzzzzzzzzzzzz"

#  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 created is specified in the Host header.
#  In this example, the "chilkat2" bucket is created:
http.SetRequestHeader("Host","chilkat2.s3.amazonaws.com")

http.SetRequestHeader("Authorization",authValue)
http.SetRequestHeader("Date",curDateTime)

xmlResponse = http.xmlRpcPut("http://s3.amazonaws.com/",xml.getXml())
if (xmlResponse == nil )
    print "NULL response" + "\n";
    print "---" + "\n";
    #  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";
else

    #  Success is indicated by an empty xmlResponse string, and
    #  a response status of 200.
    if (http.get_LastStatus() == 200)
        print "Bucket created!" + "\n"

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

    else
        print "LastStatus: " + http.get_LastStatus().to_s().to_s() + "\n";
        print "---" + "\n";
        #  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

end

 

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

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