Использование S3 Storage с .NET - PullRequest
       0

Использование S3 Storage с .NET

5 голосов
/ 21 декабря 2011

Я использую AWS.Net для загрузки пользовательского контента (изображений) и отображения его на моем сайте.Вот как выглядит мой код для загрузки:

using (client = Amazon.AWSClientFactory.CreateAmazonS3Client())
    {
        var putObjectRequest = new PutObjectRequest
        {

            BucketName = bucketName,
            InputStream = fileStream,
            Key = fileName,
            CannedACL = S3CannedACL.PublicRead,
            //MD5Digest = md5Base64,
            //GenerateMD5Digest = true,
            Timeout = 3600000 //1 Hour
        };

        S3Response response = client.PutObject(putObjectRequest);
        response.Dispose();
}

Каков наилучший способ сохранить путь к этим файлам?Есть ли способ получить ссылку на мой файл из ответа?

В настоящее время у меня просто есть URL-адрес в моей веб-конфигурации, такой как https://s3.amazonaws.com/<MyBucketName>/, а затем, когда мне нужно показать изображение, я беру эту строкуи используйте ключ от объекта, который я храню в БД, который представляет загруженный файл. Есть ли лучший способ сделать это?

Все примеры, которые идут с ним, на самом деле не касаются такого рода использования.И документация не в сети, и я не знаю, как к ней добраться после установки SDK, несмотря на то, что я следую инструкциям на Amazon.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Ваш подход к сохранению путей, включая ваши имена сегментов в web.config, - это то же самое, что и я, и это прекрасно работает. Затем я просто сохраняю относительные пути в различных таблицах базы данных.

Приятной особенностью этого подхода является то, что он облегчает миграцию на другие механизмы хранения или CDN, такие как CloudFront. Я не думаю, что есть лучший способ, чем этот подход, потому что файлы S3 находятся в другом домене или поддомене, если вы выполняете сопоставление CNAME, и, следовательно, ваша среда выполнения .NET не работает в том же домене или поддомене.

0 голосов
/ 28 ноября 2012

В ответе также есть свойство "Location", которое указывает непосредственно на URI, где находится S3Object.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...