@tc-libs/storage
v3.9.0
Published
Astrazione storage file con implementazione principale AWS S3.
Readme
@tc-libs/storage
Astrazione storage file con implementazione principale AWS S3.
Il package espone:
StorageModuleStorageAwsS3Service- tipi e serializzazioni per upload/download/listing
- enum ACL
Registrazione
StorageModule.register(
{
aws: {
credential: {
key: process.env.AWS_ACCESS_KEY_ID!,
secret: process.env.AWS_SECRET_ACCESS_KEY!,
},
s3: {
region: process.env.AWS_REGION!,
bucket: process.env.AWS_S3_BUCKET!,
baseUrl: process.env.AWS_S3_BASE_URL!,
},
},
},
true,
);Operazioni principali
StorageAwsS3Service implementa IStorageService e copre:
- health check bucket
- lista bucket
- lista file con prefisso
- download file e signed URL
- upload singolo
- multipart upload
- delete singolo/multiplo/cartella
Esempi:
const uploaded = await this.storage.uploadItem('avatar.png', buffer, {
path: 'users/42',
mime: 'image/png',
acl: ACL.public_read,
});
const signedUrl = await this.storage.getSignedUrl('avatar.png', 'users/42');Multipart:
const init = await this.storage.createMultiPart('video.mp4', {
path: 'uploads',
mime: 'video/mp4',
});Serializzazioni utili
StorageFileSerializationStorageFileResponseSerializationStorageMultipartSerializationStorageMultipartPartsSerialization
Sono utili come tipi di ritorno e per documentazione Swagger.
Note operative
- L'implementazione exportata e AWS S3; il file Azure esiste ma non e esportato dall'entrypoint.
- Il service esegue retry interni sul client S3.
getTextFromFileforzatext/plained e utile per leggere file testuali.
Export pubblici
import {
ACL,
StorageAwsS3Service,
StorageModule,
} from '@tc-libs/storage';Sviluppo
nx build storage
nx test storage