🪣 S3 home directory for files
This commit is contained in:
@@ -23,6 +23,7 @@ export default class StorageService extends TdriveService<StorageAPI> implements
|
|||||||
|
|
||||||
private encryptionOptions: EncryptionConfiguration;
|
private encryptionOptions: EncryptionConfiguration;
|
||||||
private algorithm = "aes-256-cbc";
|
private algorithm = "aes-256-cbc";
|
||||||
|
private homeDir = "tdrive";
|
||||||
|
|
||||||
api(): StorageAPI {
|
api(): StorageAPI {
|
||||||
return this;
|
return this;
|
||||||
@@ -37,6 +38,7 @@ export default class StorageService extends TdriveService<StorageAPI> implements
|
|||||||
const type = this.getConnectorType();
|
const type = this.getConnectorType();
|
||||||
if (type === "S3") {
|
if (type === "S3") {
|
||||||
logger.info("Using 'S3' connector for storage.");
|
logger.info("Using 'S3' connector for storage.");
|
||||||
|
this.homeDir = this.configuration.get<string>("S3.bucket");
|
||||||
return new S3ConnectorService({
|
return new S3ConnectorService({
|
||||||
bucket: this.configuration.get<string>("S3.bucket"),
|
bucket: this.configuration.get<string>("S3.bucket"),
|
||||||
region: this.configuration.get<string>("S3.region"),
|
region: this.configuration.get<string>("S3.region"),
|
||||||
@@ -56,6 +58,10 @@ export default class StorageService extends TdriveService<StorageAPI> implements
|
|||||||
return new LocalConnectorService(this.configuration.get<LocalConfiguration>("local"));
|
return new LocalConnectorService(this.configuration.get<LocalConfiguration>("local"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getHomeDir(): string {
|
||||||
|
return this.homeDir;
|
||||||
|
}
|
||||||
|
|
||||||
async write(path: string, stream: Stream, options?: WriteOptions): Promise<WriteMetadata> {
|
async write(path: string, stream: Stream, options?: WriteOptions): Promise<WriteMetadata> {
|
||||||
try {
|
try {
|
||||||
if (options?.encryptionKey) {
|
if (options?.encryptionKey) {
|
||||||
|
|||||||
@@ -54,4 +54,5 @@ export interface StorageConnectorAPI {
|
|||||||
export default interface StorageAPI extends TdriveServiceProvider, StorageConnectorAPI {
|
export default interface StorageAPI extends TdriveServiceProvider, StorageConnectorAPI {
|
||||||
getConnector(): StorageConnectorAPI;
|
getConnector(): StorageConnectorAPI;
|
||||||
getConnectorType(): string;
|
getConnectorType(): string;
|
||||||
|
getHomeDir(): string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -311,5 +311,7 @@ export class FileServiceImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFilePath(entity: File): string {
|
function getFilePath(entity: File): string {
|
||||||
return `/tdrive/files/${entity.company_id}/${entity.user_id || "anonymous"}/${entity.id}`;
|
return `/${gr.platformServices.storage.getHomeDir()}/files/${entity.company_id}/${
|
||||||
|
entity.user_id || "anonymous"
|
||||||
|
}/${entity.id}`;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user