feat: integrate S3 storage adapter and update file upload functionality
This commit is contained in:
38
src/lib/storage/storage.external.ts
Normal file
38
src/lib/storage/storage.external.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
'use server';
|
||||
|
||||
import { createStorageProvider } from '@/lib/storage/storage.factory';
|
||||
import { StorageProvider } from '@/lib/storage/storage.interface';
|
||||
import { TypedResult } from '@/utils/types/results';
|
||||
|
||||
const storage: StorageProvider = createStorageProvider();
|
||||
|
||||
export const getSignedUrl = async (
|
||||
key: string,
|
||||
storageProvider?: StorageProvider
|
||||
): Promise<TypedResult<string>> => {
|
||||
if (!storageProvider) {
|
||||
storageProvider = storage;
|
||||
}
|
||||
return await storageProvider.get(key);
|
||||
};
|
||||
|
||||
export const getPutUrl = async (
|
||||
key: string,
|
||||
contentType: string,
|
||||
storageProvider?: StorageProvider
|
||||
): Promise<TypedResult<string>> => {
|
||||
if (!storageProvider) {
|
||||
storageProvider = storage;
|
||||
}
|
||||
return await storageProvider.put(key, contentType);
|
||||
};
|
||||
|
||||
export const deleteByKey = async (
|
||||
key: string,
|
||||
storageProvider?: StorageProvider
|
||||
): Promise<TypedResult<void>> => {
|
||||
if (!storageProvider) {
|
||||
storageProvider = storage;
|
||||
}
|
||||
return await storageProvider.delete(key);
|
||||
};
|
||||
Reference in New Issue
Block a user