public int EliminarAlbumAwsS3(AwsS3EliminarAlbumDto entidad) { int respuesta = 0; try { string nombreDirectorio = "Album"; string url = string.Format("{0}{1}/", _urlAmazon, nombreDirectorio); string nombreArchivo = entidad.UrlImagen.Replace(url, string.Empty); using (var client = new AmazonS3Client(_llaveAmazon, _claveAmazon, RegionEndpoint.USEast2)) { var deleteObjectRequest = new DeleteObjectRequest { Key = nombreArchivo, BucketName = string.Format("red-social/{0}", nombreDirectorio) }; Task eliminar = Task.Run(() => { client.DeleteObjectAsync(deleteObjectRequest); }); eliminar.Wait(); if (eliminar.IsCompleted) { //eliminar de la base de datos LnAlbumImagen lnAlbumImagen = new LnAlbumImagen(); int resultadoEliminarBd = lnAlbumImagen.EliminarImagen(entidad.IdAlbumImagen); if (resultadoEliminarBd > 0) { respuesta = 1; } } } } catch (AmazonS3Exception exSe) { Log(Level.Error, String.Format("AmazonS3Exception: {0}", exSe)); } catch (Exception ex) { Log(Level.Error, String.Format("Exception: {0}", ex)); } return(respuesta); }
//private readonly string _urlImagenSinFoto = "https://red-social.s3.us-east-2.amazonaws.com/Aplicativo/sin_foto_perfil.jpg"; public int SubirImagenAlbumAwsS3(AwsS3RegistrarAlbumDto entidad, ref long nuevoId, ref string url) { int respuesta = 0; try { url = _urlAmazon; string nombreDirectorio = "Album"; //string rutaAchivo = @"C:\TCI\STACE_GENERAMENSAJES\Log\17\10\19\StaceAg_20171019.log"; byte[] bytes = Convert.FromBase64String(entidad.ImagenStringBase64); //Encoding.ASCII.GetBytes(entidad.Imagen); using (var client = new AmazonS3Client(_llaveAmazon, _claveAmazon, RegionEndpoint.USEast2)) { //FileStream fs = new FileStream(rutaAchivo, FileMode.Open, FileAccess.Read); using (var ms = new MemoryStream(bytes)) { //fs.CopyTo(ms); string nombreArchivo = string.Format("{0}_{1}_{2}{3}{4}_{5}{6}{7}.{8}", entidad.IdUsuario, entidad.IdAlbum, DateTime.Now.Year.ToString("d4"), DateTime.Now.Month.ToString("d2"), DateTime.Now.Day.ToString("d2"), DateTime.Now.Hour.ToString("d2"), DateTime.Now.Minute.ToString("d2"), DateTime.Now.Second.ToString("d2"), entidad.ExtensionSinPunto); url = string.Format("{0}{1}/{2}", url, nombreDirectorio, nombreArchivo); var uploadRequest = new TransferUtilityUploadRequest { InputStream = ms, Key = nombreArchivo, //Path.GetFileName(rutaAchivo), BucketName = string.Format("red-social/{0}", nombreDirectorio), CannedACL = S3CannedACL.PublicRead }; var fileTransferUtility = new TransferUtility(client); //await fileTransferUtility.UploadAsync(uploadRequest); fileTransferUtility.Upload(uploadRequest); LnAlbumImagen lnAlbumImagen = new LnAlbumImagen(); respuesta = lnAlbumImagen.ModificarImagen(new Entidad.Entidad.Perfil.AlbumImagen { IdAlbumImagen = entidad.IdAlbum, UrlImagenAlbum = url }); } } } catch (AmazonS3Exception exSe) { Log(Level.Error, String.Format("AmazonS3Exception: {0}", exSe)); } catch (Exception ex) { Log(Level.Error, String.Format("Exception: {0}", ex)); } return(respuesta); }