Estoy usando https://www.npmjs.com/package/@sleiss/ngx-awesome-uploader y no puedo encontrar una manera de cambiar el nombre del archivo antes de cargarlo.
Revisé los métodos y parece que no hay ninguno.
Puedo cambiar el nombre del archivo en el adaptador y se carga con el nuevo nombre, pero en la lista de archivos todavía está con el nombre anterior. Entonces, cuando intento eliminarlo, busca el archivo con el nombre anterior.
¿Hay alguna manera de cambiar el nombre del archivo y ponerlo a disposición de la lista de archivos?
¡Gracias!
Creo que lo tengo. Dado este adaptador...
import { AngularFireStorage } from "@angular/fire/storage"; import { FilePickerAdapter, FilePreviewModel, UploadResponse, UploadStatus } from "ngx-awesome-uploader"; import { from, Observable, of } from "rxjs"; import { catchError, map } from "rxjs/operators"; import { Uuid } from "../externalLibraries/uuid/uuid"; export class FirebaseStorageFilePickerAdapter extends FilePickerAdapter { constructor( private firebaseStorage: AngularFireStorage ) { super(); } uploadFile(fileItem: FilePreviewModel): Observable<UploadResponse> { const file = fileItem.file; const path = `public/${Uuid.generateUUID()}.${fileItem.fileName.split('.')[1]}`; const ref = this.firebaseStorage.ref(path); return from(this.firebaseStorage.upload(path, file, { contentType: fileItem.file.type })).pipe( map((response) => { let returnedResponse: UploadResponse; switch (response.state.toLowerCase()) { case 'canceled': case 'error': case 'paused': returnedResponse = { status: UploadStatus.ERROR, }; break; case 'success': returnedResponse = { status: UploadStatus.UPLOADED, body: response.metadata, progress: 100 } break; default: returnedResponse = { status: UploadStatus.IN_PROGRESS, body: response.metadata, progress: (response.bytesTransferred / response.totalBytes) * 100 } break; } return returnedResponse; }), catchError((err, caught) => { console.error(err) return of({ status: UploadStatus.ERROR }) }) ); } removeFile(fileItem: FilePreviewModel): Observable<any> { return this.firebaseStorage.ref(fileItem.uploadResponse.fullPath).delete(); } } Mi problema era usar public/${fileItem.filename} cuando intentaba eliminar el archivo y no existía. Sin embargo, el nuevo nombre viene en el objeto uploadResponse, así que ahora obtengo la ruta completa de fileItem.uploadResponse.fullPath