I am trying to change the access policy on an existing bucket. I am using Amazon S3 REST Wrapper by Joe Danziger. Using his cfc I can create, upload and delete buckets and objects - everything works! I added a function getACL() that will retrieve the ACL on a bucket (which works):
<cffunction name="getACL" access="public" output="false"> <cfargument name="bucketName" type="string" required="yes"> <cfset var dateTimeString = GetHTTPTimeString(Now())> <!--- Create a canonical string to send based on operation requested ---> <cfset var cs = "GET\n\n\n#dateTimeString#\n/#arguments.bucketName#?acl"> <!--- Create a proper signature ---> <cfset var signature = createSignature(cs)> <cfhttp method="GET" url="http://s3.amazonaws.com/#arguments.bucketName#?acl"> <cfhttpparam type="header" name="Date" value="#dateTimeString#"> <cfhttpparam type="header" name="Authorization" value="AWS variables.accessKeyId#:#signature#"> </cfhttp> <cfreturn cfhttp.fileContent> </cffunction> Now I am trying to change the ACL: <cffunction name="changeACL" access="public" output="false"> <cfargument name="bucketName" type="string" required="yes"> <cfargument name="acl" type="string" required="yes"> <cfset var dateTimeString = GetHTTPTimeString(Now())> <!--- Create a canonical string to send based on operation requested ---> <cfset var cs = "PUT\n\n\n\x-amz-acl:#arguments.acl#\ntext/plain\n0\n#dateTimeString#\n#arguments.bucketName#?acl"> <!--- Create a proper signature ---> <cfset var signature = createSignature(cs)> <cfhttp method="PUT" url="http://s3.amazonaws.com/#arguments.bucketName#?acl"> <!--- x-amz-acl is private, public-read, public-read-write or authenticated-read ---> <cfhttpparam type="header" name="x-amz-acl" value="#arguments.acl#"> <cfhttpparam type="header" name="Content-Type" value="text/plain"> <cfhttpparam type="header" name="Content-Length" value="0"> <cfhttpparam type="header" name="Date" value="#dateTimeString#"> <cfhttpparam type="header" name="Authorization" value="AWS #variables.accessKeyId#:#signature#"> </cfhttp> <cfreturn cfhttp.fileContent> <!--- header ---> </cffunction> I keep getting an error saying the signatures don't match - I'm thinking that there's something wrong with the string "cs" not matching the header but I seem to be hitting a brick wall with this one. Any ideas? Andrew. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;207172674;29440083;f Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:313044 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4