public FileAppService() { Uow = new SexMoveContext(); AzureContainer = new AzureContainer(); FileRepository = new FileRepository(Uow); UserRepository = new UserRepository(Uow); }
public static async Task <bool> DeleteContainerAsync(AzureContainer containerType) { // Deletes a container var container = GetContainer(containerType); return(await container.DeleteIfExistsAsync()); }
public static CloudBlobContainer GetContainer(AzureContainer containerType) { var account = CloudStorageAccount.Parse(Config.Constants.StorageConection); //Tener el vinvulo var client = account.CreateCloudBlobClient(); return(client.GetContainerReference(containerType.ToString().ToLower())); }
public static async Task <bool> DeleteFileAsync(AzureContainer containerType, string fileName) { // Deletes blob file from a container var container = GetContainer(containerType); var blob = container.GetBlobReference(fileName); return(await blob.DeleteIfExistsAsync()); }
static CloudBlobContainer GetContainer(AzureContainer containerType) { // Get container according a string azure connection var account = CloudStorageAccount.Parse(Config.Constants.StorageConnection); var client = account.CreateCloudBlobClient(); return(client.GetContainerReference(containerType.ToString().ToLower())); }
public static async Task <bool> DeleteFyleAsync(AzureContainer containerType, string name) { //Borra un archivo blob "name" de un contenedor var container = GetContainer(containerType); var blob = container.GetBlockBlobReference(name); return(await blob.DeleteIfExistsAsync()); }
protected void UploadClick(object sender, EventArgs e) { if (!SelectedMovieId.HasValue) { lblSelectedMovie.Text = "Please select a movie"; return; } if (!FileUpload1.HasFiles) { return; } var movie = Movies[SelectedMovieId.Value]; AzureContainer azureContainer = new AzureContainer("StorageConnectionString"); azureContainer.SetContainer(GetMovieContainerName(movie)); bool isNewMoviePhotosAvailable = false; var files = FileUpload1.PostedFiles; using (var dataContext = new ProjectManhattanEntities1()) { foreach (var file in files) { var photoURL = azureContainer.StoreFile(file.FileName, file.InputStream); MoviePhoto moviePhoto = dataContext.MoviePhotoes .Where(m => m.MovieId == SelectedMovieId.Value).ToList() .FirstOrDefault(m => string.Equals(Path.GetFileName(m.MoviePhotoURL), Path.GetFileName(photoURL), StringComparison.CurrentCultureIgnoreCase)); if (moviePhoto == null) { moviePhoto = new MoviePhoto() { MovieId = movie.MovieId, MoviePhotoURL = photoURL, }; dataContext.MoviePhotoes.AddObject(moviePhoto); isNewMoviePhotosAvailable = true; } } if (isNewMoviePhotosAvailable) { dataContext.SaveChanges(); RefreshPhotos(); } } }
public static async Task <string> UploadFileAsync(AzureContainer containerType, Stream stream) { var container = GetContainer(containerType); await container.CreateIfNotExistsAsync(); // Guid is a unique global structure var name = Guid.NewGuid().ToString(); var fileBlob = container.GetBlockBlobReference(name); await fileBlob.UploadFromStreamAsync(stream); return(name); }
protected void btnCreateContainers_OnClick(object sender, EventArgs e) { AzureContainer azureContainer = new AzureContainer("StorageConnectionString"); using (var dataContext = new ProjectManhattanEntities1()) { var movies = dataContext.Movies.ToList(); foreach (var movie in movies) { var containerName = GetMovieContainerName(movie); azureContainer.GetOrCreateContainer(containerName); } } }
private void RefreshPhotos() { if (!SelectedMovieId.HasValue) { return; } var movie = Movies[SelectedMovieId.Value]; var containerName = GetMovieContainerName(movie); AzureContainer azureContainer = new AzureContainer("StorageConnectionString"); var files = azureContainer.GetListFiles(containerName); CheckBoxList1.DataSource = files.Select(f => System.IO.Path.GetFileName(f.OriginalString)).ToList(); CheckBoxList1.DataBind(); }
public static async Task <byte[]> GetFileAsync(AzureContainer containerType, string fileName) { // Download blob file with the name "fileName" from container "containerType" var container = GetContainer(containerType); var blob = container.GetBlobReference(fileName); if (await blob.ExistsAsync()) { await blob.FetchAttributesAsync(); byte[] blobBytes = new byte[blob.Properties.Length]; await blob.DownloadToByteArrayAsync(blobBytes, 0); return(blobBytes); } return(null); }
public static async Task <byte[]> GetFileAsync(AzureContainer containerType, string name) { //Descarga el archivo con el nombre name var container = GetContainer(containerType); var blob = container.GetBlobReference(name); if (await blob.ExistsAsync()) { await blob.FetchAttributesAsync(); byte[] blobBytes = new byte[blob.Properties.Length]; await blob.DownloadToByteArrayAsync(blobBytes, 0); return(blobBytes); } return(null); }
static void Main(string[] args) { // args "bucket-name" "container-name" "storageaccount-name" "storageaccount-key" Console.WriteLine("Listing AWS"); var awsListTask = AmazonS3.ListObjectsAsync(args[0]); Console.WriteLine("Listing Azure"); var azureListTask = AzureContainer.ListAsync(args[1], args[2], args[3]); Console.WriteLine("Awaiting both"); Task.WhenAll(awsListTask, azureListTask); Console.WriteLine("Comparing"); Compare(awsListTask.Result, azureListTask.Result); File.AppendAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\aws.txt", awsListTask.Result); File.AppendAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\az.txt", azureListTask.Result); Console.WriteLine("Done"); }
//Nos lista todos los archivos de un contenedor public static async Task <IList <string> > GetFilesListAsync(AzureContainer containerType) { //Obtiene todos los archivos blob del contenedor especifico en un containerType var container = GetContainer(containerType); var list = new List <string>(); BlobContinuationToken token = null; do { var result = await container.ListBlobsSegmentedAsync(token); if (result.Results.Count() > 0) { var blobs = result.Results.Cast <CloudBlockBlob>().Select(b => b.Name); list.AddRange(blobs); } token = result.ContinuationToken; } while (token != null); return(list); }
public static async Task <List <string> > GetFilesListAsync(AzureContainer containerType) { // Get all blob files from the specific container var container = GetContainer(containerType); var list = new List <string>(); BlobContinuationToken token = null; do { var result = await container.ListBlobsSegmentedAsync(token); if (result.Results.Count() > 0) { var blobs = result.Results.Cast <CloudBlockBlob>().Select(b => b.Name); list.AddRange(blobs); } token = result.ContinuationToken; } while (token != null); return(list); }
/// <summary> /// Creates a data source that can be used client-side. /// </summary> public ClientDataSource() { var connectionString = Settings.Default.DataConnectionString; var storageAccount = CloudStorageAccount.Parse(connectionString); var blobEndpointUri = storageAccount.BlobEndpoint.AbsoluteUri; var tableEndpointUri = storageAccount.TableEndpoint.AbsoluteUri; var credentials = storageAccount.Credentials; var filesContainerName = Settings.Default.FilesContainerName; _files = AzureContainer.Connect(filesContainerName, blobEndpointUri, credentials); var outputsContainerName = Settings.Default.OutputsContainerName; _outputs = AzureContainer.Connect(outputsContainerName, blobEndpointUri, credentials); var procDllsContainerName = Settings.Default.ProcDllsContainerName; _procDlls = AzureContainer.Connect(procDllsContainerName, blobEndpointUri, credentials); _entries = AzureTable<Entry>.Connect(tableEndpointUri, credentials); _users = AzureTable<User>.Connect(tableEndpointUri, credentials); }
protected void btnSyncMoviePhotos_OnClick(object sender, EventArgs e) { AzureContainer azureContainer = new AzureContainer("StorageConnectionString"); using (var dataContext = new ProjectManhattanEntities1()) { var movies = dataContext.Movies .Include("MoviePhotoes") .ToList(); bool isNewMoviePhotosAvailable = false; foreach (var movie in movies) { var containerName = GetMovieContainerName(movie); var existingPhotosInDB = new HashSet <string>(movie.MoviePhotoes.Select(m => m.MoviePhotoURL)); foreach (var uri in azureContainer.GetListFiles(containerName)) { var photoURL = uri.OriginalString; if (!existingPhotosInDB.Contains(photoURL)) { //Insert the missing movie photo MoviePhoto moviePhoto = new MoviePhoto() { MovieId = movie.MovieId, MoviePhotoURL = photoURL, }; dataContext.MoviePhotoes.AddObject(moviePhoto); isNewMoviePhotosAvailable = true; } } } if (isNewMoviePhotosAvailable) { dataContext.SaveChanges(); } } }
protected void btnDeleteSelectedFiles_OnClick(object sender, EventArgs e) { if (!SelectedMovieId.HasValue) { lblSelectedMovie.Text = "Please select a movie"; return; } var movie = Movies[SelectedMovieId.Value]; AzureContainer azureContainer = new AzureContainer("StorageConnectionString"); azureContainer.SetContainer(GetMovieContainerName(movie)); var items = CheckBoxList1.Items; using (var dataContext = new ProjectManhattanEntities1()) { foreach (ListItem item in items) { if (item.Selected) { azureContainer.DeleteFile(item.Text); var moviePhoto = dataContext.MoviePhotoes .Where(m => m.MovieId == SelectedMovieId.Value).ToList() .FirstOrDefault(m => string.Equals(Path.GetFileName(m.MoviePhotoURL), item.Text, StringComparison.CurrentCultureIgnoreCase)); dataContext.MoviePhotoes.DeleteObject(moviePhoto); dataContext.SaveChanges(); } } RefreshPhotos(); } }