예제 #1
0
        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);
        }
예제 #2
0
        //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);
        }