public static void Main(string[] args)
        {
            // create the ECS S3 client
            ECSS3Client s3 = ECSS3Factory.getS3Client();

            // retrieve the object key and hours before expiration
            Console.Write("Enter the object key: ");
            string key = Console.ReadLine();

            Console.Write("How long should this tag be valid?: ");
            string hours = Console.ReadLine();

            // create expiration based on input
            DateTime expiration = DateTime.Now.AddHours(Convert.ToDouble(hours));

            // create the request object to generate pre-signed url
            GetPreSignedUrlRequest request = new GetPreSignedUrlRequest()
            {
                BucketName = ECSS3Factory.S3_BUCKET,
                Key        = key,
                Expires    = expiration,
                Verb       = HttpVerb.GET,
            };

            // get pre-signed url
            string url = s3.GetPreSignedURL(request);

            // print objects pre-signed url
            Console.WriteLine(string.Format("Object {0}/{1} pre-signed url: {2}", ECSS3Factory.S3_BUCKET, key, url));
            Console.ReadLine();
        }