Yes, there is a solution. Well, using the Amazon .net SDK you can get preSignedUrl.
using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client("your access key ID", "you secret key"))
{
GetPreSignedUrlRequest getPreSignedUrl = new GetPreSignedUrlRequest().WithBucketName(bucketName); getPreSignedUrl.Key = key:
getPreSignedUrl.Expires = DateTime.Now.AddSeconds(60);
}