fix(core): update

This commit is contained in:
Philipp Kunz 2024-06-09 16:02:33 +02:00
parent 559e3da47b
commit 591c99736d
4 changed files with 25 additions and 6 deletions

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartbucket', name: '@push.rocks/smartbucket',
version: '3.0.11', version: '3.0.12',
description: 'A TypeScript library offering simple and cloud-agnostic object storage with advanced features like bucket creation, file and directory management, and data streaming.' description: 'A TypeScript library offering simple and cloud-agnostic object storage with advanced features like bucket creation, file and directory management, and data streaming.'
} }

View File

@ -216,7 +216,7 @@ export class Bucket {
*/ */
public async fastPutStream(optionsArg: { public async fastPutStream(optionsArg: {
path: string; path: string;
dataStream: plugins.stream.Readable | ReadableStream; readableStream: plugins.stream.Readable | ReadableStream;
nativeMetadata?: { [key: string]: string }; nativeMetadata?: { [key: string]: string };
overwrite?: boolean; overwrite?: boolean;
}): Promise<void> { }): Promise<void> {
@ -233,7 +233,7 @@ export class Bucket {
console.log(`Creating new object at path '${optionsArg.path}' in bucket '${this.name}'.`); console.log(`Creating new object at path '${optionsArg.path}' in bucket '${this.name}'.`);
} }
const streamIntake = await plugins.smartstream.StreamIntake.fromStream<Uint8Array>(optionsArg.dataStream); const streamIntake = await plugins.smartstream.StreamIntake.fromStream<Uint8Array>(optionsArg.readableStream);
// Proceed with putting the object // Proceed with putting the object
await this.smartbucketRef.minioClient.putObject( await this.smartbucketRef.minioClient.putObject(

View File

@ -74,8 +74,9 @@ export class Directory {
return null; return null;
} }
if (!exists && optionsArg.createWithContents) { if (!exists && optionsArg.createWithContents) {
await this.fastPut({ await File.create({
path: optionsArg.name, directory: this,
name: optionsArg.name,
contents: optionsArg.createWithContents, contents: optionsArg.createWithContents,
}); });
} }
@ -254,6 +255,20 @@ export class Directory {
return result; return result;
} }
/**
* fast put stream
*/
public async fastPutStream(optionsArg: {
path: string;
stream: plugins.stream.Readable;
}): Promise<void> {
const path = plugins.path.join(this.getBasePath(), optionsArg.path);
await this.bucketRef.fastPutStream({
path,
readableStream: optionsArg.stream,
});
}
/** /**
* removes a file within the directory * removes a file within the directory
* @param optionsArg * @param optionsArg

View File

@ -33,6 +33,10 @@ export class File {
fileName: optionsArg.name, fileName: optionsArg.name,
}); });
if (contents instanceof plugins.stream.Readable) { if (contents instanceof plugins.stream.Readable) {
await optionsArg.directory.fastPutStream({
path: optionsArg.name,
stream: contents,
});
} else { } else {
await optionsArg.directory.fastPut({ await optionsArg.directory.fastPut({
path: optionsArg.name, path: optionsArg.name,
@ -160,7 +164,7 @@ export class File {
) { ) {
await this.parentDirectoryRef.bucketRef.fastPutStream({ await this.parentDirectoryRef.bucketRef.fastPutStream({
path: this.getBasePath(), path: this.getBasePath(),
dataStream: optionsArg.contents, readableStream: optionsArg.contents,
}); });
} else if (Buffer.isBuffer(optionsArg.contents)) { } else if (Buffer.isBuffer(optionsArg.contents)) {
await this.parentDirectoryRef.bucketRef.fastPut({ await this.parentDirectoryRef.bucketRef.fastPut({