0

I am trying to write a script to push data out to an amazon s3 bucket and I need to generate what I believe is an RFC 2822 date to send in the header request.

The date looks like this "Tue, 12 June 2012 23:41:58 +0000"

I just need a function to generate the correct time format as I am getting the following error.

RequestTimeTooSkewed The difference between the request time and the current time is too large.

This is what I have so far...

<%
sTimeStamp = "Tue, 12 June 2012 23:41:58 +00002012-06-12T22:45:47Z"
sAWSAccessKeyId = "AESDQWDQWD"
sSignature=Encrypt("SecretQWEQWEQWEQWEYAYAY")

AWSServiceUrl = "https://s3.amazonaws.com/"
Set oXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
oXMLHTTP.open "GET", AWSServiceUrl, False
oXMLHTTP.setRequestHeader "Authorization", "AWS " & sAWSAccessKeyId & ":" & sSignature
oXMLHTTP.setRequestHeader "x-amz-date", sTimeStamp
on error resume next
oXMLHTTP.send sRequest
Response.Write oXMLHTTP.responseText
%>

Any ideas?

Chris Dowdeswell
  • 858
  • 2
  • 11
  • 25

1 Answers1

0

The simplest way to do it is to get JScript to help:

<script runat="server" language="javascript">
    function JSNow() { return new Date(); }
</script>

Now you can get the string format for the time required with:

Dim sTimeStamp: sTimeStamp = JSNow().toString()
AnthonyWJones
  • 187,081
  • 35
  • 232
  • 306