2008-09-22 7 views

Répondre

25

Mise à jour février 2016:

Le SDK AWS peut gérer beaucoup plus de cela maintenant. Découvrez how to build the form et how to build the signature. Cela devrait vous éviter d'avoir besoin de la bande passante de votre côté, en supposant que vous n'ayez pas besoin de traiter vous-même le contenu avant de l'envoyer à S3.

+1

Nice !!! Il est difficile de trouver certains de ces échantillons Amazon et c'était un que j'aurais certainement pu utiliser il y a quelque temps. Je vous remercie. –

+4

Ceci est des années plus tard, mais j'ai écrit un [blog] (http://codeonaboat.wordpress.com/2011/04/22/uploading-a-file-to-amazon-s3-using-an-asp-net-mvc -application-directement-from-the-users-browser /) à propos de cela car j'ai récemment dû le configurer. – floatingfrisbee

+0

Bonjour, Le lien ne fonctionne pas ... – Learning

1

ThreeSharp est une bibliothèque facilitant les interactions avec Amazon S3 dans un environnement .NET.

Vous aurez toujours besoin d'héberger la logique pour télécharger et envoyer des fichiers vers s3 dans votre application mvc, mais vous n'aurez pas besoin de les conserver sur votre serveur.

+4

ThreeSharp arrête son projet grâce aux efforts d'Amazon. Cela vient de leur site: "Nous recommandons aux développeurs de migrer vers AWS SDK dès que possible, car nous ne conserverons plus la bibliothèque ThreeSharp." – Stradas

+0

@kyle, Cela signifie-t-il que AWS SDK a une fonction intégrée pour diffuser des fichiers directement sur Seau AWS S3 ... – Learning

1

Recherchez une bibliothèque javascript pour gérer le téléchargement côté client de ces fichiers. Je suis tombé sur un javascript et php example Dojo semble également offrir un téléchargement de fichier s3 clientide.

5

Si vous devez télécharger des fichiers volumineux et afficher une barre de progression, vous devez considérer le flajaxian component.

Il utilise le flash pour télécharger des fichiers directement sur amazon s3, en économisant votre bande passante.

+1

Flajaxian était super, je l'ai utilisé en production pendant quelques années. Mais récemment, il est devenu buggé sur Mac OS en raison de subtiles différences avec le composant Flash sur les appareils Mac. Je ne recommanderais plus ce composant pour une utilisation en production, les développeurs ont abandonné le support .. vous avez juste besoin de regarder tous les posts sans réponse sur Codeplex. – QFDev

2

Le moyen le meilleur et le plus simple pour télécharger des fichiers sur amazon S3 via asp.net. Jetez un oeil à la suite de blog post par moi. Je pense que celui-ci va aider. Ici, j'ai expliqué à partir de l'ajout d'un seau S3 à la création de la clé API, Installation Amazon SDK et l'écriture de code pour télécharger des fichiers. Voici l'exemple de code pour télécharger des fichiers sur Amazon S3 avec 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 
} 
} 

Ici, vous pouvez utiliser la fonction sendMyFileToS3 pour télécharger le flux de fichiers vers Amazon S3. Pour plus de détails, consultez mon blog dans le lien suivant.

Upload File to Amazon S3 via asp.net

J'espère que le lien mentionné ci-dessus vous aidera.

+0

Ce code referer est à solution payante et le télécharge-t-il directement sur Amazon s3 bucket ?. – Learning

+0

Oui, il télécharger directement à amazon S3 seau spécifié par vous. Vous avez juste besoin de mettre vos informations d'identification API et le nom du compartiment où vous voulez télécharger les fichiers. Le repos sera pris en charge par le code.Il est décrit en détails dans le blog. –

Questions connexes