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 com.chilkatsoft.*; public class ChilkatExample { static { try { System.loadLibrary("chilkat"); } catch (UnsatisfiedLinkError e) { System.err.println("Native code library failed to load.\n" + e); System.exit(1); } } public static void main(String argv[]) { CkHttp http = new CkHttp(); boolean success; success = http.UnlockComponent("Anything for 30-day trial."); if (success != true) { // Unlock failed. System.out.println(http.lastErrorText()); return; } // We'll need this for HMAC and MD5... CkCrypt2 crypt = new CkCrypt2(); success = crypt.UnlockComponent("Anything for 30-day trial."); if (success != true) { System.out.println(crypt.lastErrorText()); return; } // 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. String curDateTime; curDateTime = http.genTimeStamp(); // This is the content of the text object to be added to // the "chilkat" bucket: String textData; textData = "woah"; // This is the name of the object to be added: String objName; objName = "Neo"; // Calculate the MD5 hash of the object's content: crypt.put_HashAlgorithm("md5"); crypt.put_EncodingMode("base64"); crypt.put_Charset("windows-1252"); String md5Hash; 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). String strToSign; 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: String AWSAccessKeyId; AWSAccessKeyId = "zzzzzzzzzzzzzzzzzzzz"; String AWSSecretAccessKey; 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"); String signature; signature = crypt.hmacStringENC(strToSign); String authValue; 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 boolean bGzip; bGzip = false; // Automatically add an MD5 hash of the request body in the HTTP header // (using the Content-MD5 header field). boolean bMd5; bMd5 = true; String url; url = "http://s3.amazonaws.com/" + objName; String strResponse; strResponse = http.putText(url,textData,"windows-1252","text/plain",bMd5,bGzip); if (http.get_LastStatus() == 200) { System.out.println("Object added to bucket!"); // Let's check out the response header anyway... System.out.println(http.lastResponseHeader()); } else { // Failed. Show the last request header, response header, // and response body. System.out.println(http.lastHeader()); System.out.println("---"); System.out.println(http.lastResponseHeader()); System.out.println("---"); System.out.println(http.lastErrorText()); } } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.