Frage

Wer noch ein Beispiel für eine signierte URL mit einem Ablauf Erstellung mit ASP .Net? Ich erforsche mit LitS3 oder

War es hilfreich?

Lösung

Hier ist, was für mich mit dem AWS SDK und MVC 3 gearbeitet (basierend auf den Antworten oben und was ich gefunden auf http://www.ec2studio.com/articles/s3.html ):

public ActionResult GetS3Object(string bucket, string key)
{
    string accessKeyID = ConfigurationManager.AppSettings["AWSAccessKey"];
    string secretAccessKeyID = ConfigurationManager.AppSettings["AWSSecretKey"];
    using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID))
        {
        GetPreSignedUrlRequest request = new GetPreSignedUrlRequest()
            .WithBucketName(bucket)
            .WithKey(key)
            .WithExpires(DateTime.Now.Add(new TimeSpan(7, 0, 0, 0)));
        return Redirect(client.GetPreSignedURL(request));
        }
}

Andere Tipps

mit der amazon .net SDK Sie können preSignedUrl bekommen

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);
            }

Gefunden diese (erwähnt in diesem Faden in die AWS Diskussionsforen) Klassenbibliothek für signierte URLs in Amazon S3 zu erzeugen. Wenn jemand irgendwelche zusätzlichen Vorschläge / Methoden hat, um zu versuchen, lassen Sie es mich wissen.

Edit: ThreeSharp hat die Funktionalität, die ich suchte. Von der ThreeSharpConsoleSample App:

      using (UrlGetRequest request = new UrlGetRequest("mytestbucket", "mytestfile.txt"))
            {
                request.ExpiresIn = 60 * 10000;
                using (UrlGetResponse response = service.UrlGet(request))
                {
                    Console.WriteLine("Try this url in your web browser (it will only work for 60 seconds)\n");
                    string url = response.StreamResponseToString();
                    Console.WriteLine(url);
                }
            }
            Console.WriteLine("\npress enter >");
            Console.ReadLine();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top