public function getAuthenticatedURL(S3 $s3, $bucket, $uri, $lifetime, $hostBucket = false, $https = false) { $expires = $lifetime + time(); return sprintf(($https ? 'https' : 'http') . '://%s/%s?AWSAccessKeyId=%s&Expires=%u&Signature=%s', $hostBucket ? $bucket : $bucket . '.s3.amazonaws.com', $uri, $s3->getAccessKey(), $expires, urlencode($s3->__getHash("GET\n\n\n{$expires}\n/{$bucket}/{$uri}"))); }