Mi aplicación ASP.NET MVC requerirá mucho ancho de banda y espacio de almacenamiento. ¿Cómo puedo configurar una página de carga ASP.NET para que el archivo que cargó el usuario vaya directamente a Amazon S3 sin usar el ancho de banda y el almacenamiento de mi servidor web?Subir archivos directamente a Amazon S3 desde la aplicación ASP.NET
Respuesta
actualización Feb 2016:
El SDK de AWS puede manejar mucho más de esto ahora. Consulte how to build the form y how to build the signature. Eso debería evitar que necesite el ancho de banda de su lado, suponiendo que no necesita procesar el contenido usted mismo antes de enviarlo a S3.
ThreeSharp es una biblioteca para facilitar las interacciones con Amazon S3 en un entorno .NET.
Todavía necesitará alojar la lógica para cargar y enviar archivos a s3 en su aplicación mvc, pero no será necesario que los conserve en su servidor.
ThreeSharp está suspendiendo su proyecto debido a los esfuerzos de Amazon. Esto es de su sitio: "Recomendamos a los desarrolladores migrar al SDK de AWS a la brevedad posible, ya que ya no mantendremos la biblioteca ThreeSharp". – Stradas
@kyle, ¿Esto significa que AWS SDK tiene una característica incorporada para transmitir archivos directamente a AWS S3 cubo ... – Learning
Busque una biblioteca de JavaScript para gestionar la carga de estos archivos en el lado del cliente. Me encontré con un javascript y php example Dojo también parece ofrecer una carga de archivo de cliente s3.
Si necesita cargar archivos de gran tamaño y visualizar una barra de progreso, debe considerar el flajaxian component.
Utiliza el flash para cargar archivos directamente en Amazon S3, guardando su ancho de banda.
Flajaxian fue genial, lo usé en producción durante un par de años. Pero recientemente se ha vuelto problemático en Mac OS debido a diferencias sutiles con el componente Flash en dispositivos Mac. Ya no recomendaría este componente para uso de producción, los desarrolladores han dejado de admitirlo ... solo necesita ver todas las publicaciones sin respuesta en Codeplex. – QFDev
La mejor y más fácil manera de cargar archivos a amazon S3 a través de asp.net. Echa un vistazo a la siguiente publicación de blog por mí. Creo que este ayudará. Aquí expliqué al agregar un depósito S3 para crear la clave API, instalar Amazon SDK y escribir código para cargar archivos. Los siguientes son los ejemplos de código para cargar archivos en Amazon S3 con 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
}
}
Aquí puede usar la función sendMyFileToS3 para cargar la transmisión de archivos a amazon S3. Para más detalles, consulte mi blog en el siguiente enlace.
Upload File to Amazon S3 via asp.net
espero que el enlace mencionado anteriormente será de ayuda.
Este código se refiere a la solución paga y ¿se carga directamente en Amazon s3 bucket ?. – Learning
Sí, se carga directamente en Amazon S3 bucket especificado por usted. Solo debe colocar las credenciales de la API y el nombre del depósito donde desea cargar los archivos. El resto será cuidado por el código.Se describe en detalle en la publicación del blog. –
- 1. ¿Cómo subir archivos directamente a Amazon S3 desde un servidor remoto?
- 2. ¿Subir directamente a S3 o vía EC2?
- 3. Subir archivo directamente a S3 con barra de progreso
- 4. ¿Cómo subir archivos a una subcarpeta de compartimentos de Amazon S3 a través de POST?
- 5. Transmisión de archivos MP3 desde Amazon S3
- 6. ¿Es posible subir a S3 directamente desde la URL usando POST?
- 7. Subida POST de Amazon S3 (desde iPhone)
- 8. Cómo generar una url temporal para subir archivos a Amazon S3 con la biblioteca de boto?
- 9. Subir archivos a ftp desde la aplicación iOS
- 10. Transferir archivos entre Amazon EC2 y S3
- 11. Usando Uploadify para POST directamente a Amazon S3
- 12. Biblioteca .NET o aplicación asp.net para Amazon S3
- 13. ¿Cómo puedo subir archivos de más de 5 GB a Amazon S3?
- 14. Cómo eliminar archivos en amazon S3 desde ruby
- 15. archivos avanzado Asp.Net subir
- 16. Permisos de Amazon S3
- 17. Política de depósito de Amazon S3 para subir fotos de forma anónima a un contenedor
- 18. Aplicación de JavaScript puro + Amazon S3?
- 19. cómo eliminar archivos de Amazon S3 Bucket?
- 20. Cómo servir activos comprimidos desde Amazon S3
- 21. Sirviendo archivos estáticos de Amazon S3
- 22. Subiendo a los servicios de Amazon S3 desde la aplicación iPhone
- 23. ¿Es posible ordenar archivos en Amazon S3?
- 24. Configuración de MEDIA_URL para la aplicación Django Heroku, Amazon S3
- 25. Forzar la descarga de servidores s3 amazon
- 26. Transmitiendo un archivo zip dinámico desde Amazon S3
- 27. ¿Cómo copio archivos de S3 a Amazon EMR HDFS?
- 28. Mover 1 millón de archivos de imagen a Amazon S3
- 29. Crear una carpeta mediante s3cmd (Amazon S3)
- 30. Arquitectura de Amazon S3
Nice !!! Es difícil encontrar algunas de esas muestras de Amazon y esta fue una que definitivamente podría haber usado hace un tiempo. Gracias. –
Esto es años después pero escribí un [blog] (http://codeonaboat.wordpress.com/2011/04/22/uploading-a-file-to-amazon-s3-using-an-asp-net-mvc -aplicación-directamente-de-los-usuarios-navegador /) sobre esto ya que recientemente tuve que configurarlo. – floatingfrisbee
Hola, el enlace no funciona ... – Learning