Przesyłanie plików bezpośrednio do Amazon S3 z ASP.NET zastosowanie

My ASP.NET aplikacja MVC zajmie dużo przepustowości i przestrzeni dyskowej. Jak mogę skonfigurować ASP.NET strona przesyłania więc plik przesłany przez użytkownika przejdzie bezpośrednio do Amazon S3 bez korzystania z pamięci i przepustowości mojego serwera www?

 26
Author: ycseattle, 2008-09-23

5 answers

Aktualizacja Luty 2016:

AWS SDK poradzi sobie teraz z wieloma innymi. Sprawdź Jak zbudować formularz i Jak zbudować podpis . Powinno to uniemożliwić Ci korzystanie z przepustowości po twojej stronie, zakładając, że nie musisz samodzielnie przetwarzać treści przed wysłaniem jej do S3.

 25
Author: Jonathan Rupp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-25 17:49:32

Jeśli chcesz przesłać duże pliki i wyświetlić pasek postępu, powinieneś rozważyć komponent flajaxian .

Używa Flasha do przesyłania plików bezpośrednio do amazon S3, oszczędzając przepustowość.

 5
Author: holiveira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-03 17:00:46

Najlepszy i najprostszy sposób przesyłania plików do amazon S3 za pośrednictwem asp.net . Zobacz poniższy wpis na blogu mojego autorstwa . myślę, że ten pomoże. Tutaj wyjaśniłem od dodawania wiadra S3 do tworzenia klucza API, instalowania Amazon SDK i pisania kodu do przesyłania plików. Poniżej znajduje się przykładowy kod do przesyłania plików do amazon S3 z asp.net C#.

using System
using System.Collections.Generic
using System.Linq
using System.Web
using Amazon
using Amazon.S3
using Amazon.S3.Transfer
/// 
/// Summary description for AmazonUploader
/// 
public class AmazonUploader
{
        public bool sendMyFileToS3(System.IO.Stream localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3)
        {
        // input explained :
        // localFilePath = we will use a file stream , instead of path
        // bucketName : the name of the bucket in S3 ,the bucket should be already created
        // subDirectoryInBucket : if this string is not empty the file will be uploaded to
            // a subdirectory with this name
        // fileNameInS3 = the file name in the S3
    // create an instance of IAmazonS3 class ,in my case i choose RegionEndpoint.EUWest1
    // you can change that to APNortheast1 , APSoutheast1 , APSoutheast2 , CNNorth1
    // SAEast1 , USEast1 , USGovCloudWest1 , USWest1 , USWest2 . this choice will not
    // store your file in a different cloud storage but (i think) it differ in performance
    // depending on your location


        IAmazonS3 client = new AmazonS3Client("Your Access Key", "Your Secrete Key", Amazon.RegionEndpoint.USWest2);

    // create a TransferUtility instance passing it the IAmazonS3 created in the first step
    TransferUtility utility = new TransferUtility(client);
    // making a TransferUtilityUploadRequest instance
    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();

    if (subDirectoryInBucket == "" || subDirectoryInBucket == null)
    {
        request.BucketName = bucketName; //no subdirectory just bucket name
    }
    else
    {   // subdirectory and bucket name
        request.BucketName = bucketName + @"/" + subDirectoryInBucket;
    }
    request.Key = fileNameInS3 ; //file name up in S3
    //request.FilePath = localFilePath; //local file name
    request.InputStream = localFilePath;
    request.CannedACL = S3CannedACL.PublicReadWrite;
    utility.Upload(request); //commensing the transfer

    return true; //indicate that the file was sent
}
}

Tutaj możesz użyć funkcji sendMyFileToS3, aby przesłać strumień plików do amazon S3. Więcej szczegółów na moim blogu w podlinkuj stronę :

Prześlij plik do Amazon S3 poprzez asp.net

Mam nadzieję, że powyższy link pomoże.

 2
Author: sambit.albus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-18 12:49:27

ThreeSharp jest biblioteką ułatwiającą interakcje z Amazon S3 w środowisku. NET.

Nadal będziesz musiał hostować logikę, aby przesłać i wysłać pliki do S3 w aplikacji mvc, ale nie będziesz musiał utrzymywać ich na serwerze.

 1
Author: Kyle Chafin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 21:59:41

Poszukaj biblioteki javascript do obsługi wysyłania tych plików po stronie klienta. Natknąłem się na przykład javascript i php Dojo również wydaje się oferować wysyłanie plików S3 dla klientów.

 1
Author: Aaron Fischer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-22 22:13:31