UNPKG

@nephele/adapter-s3

Version:

S3 (or compatible) object storage adapter for the Nephele WebDAV server.

31 lines (30 loc) 1.45 kB
import type { Request } from 'express'; import type { S3ClientConfig } from '@aws-sdk/client-s3'; import { S3 } from '@aws-sdk/client-s3'; import type { Adapter as AdapterInterface, AuthResponse, Method, User } from 'nephele'; import Resource from './Resource.js'; export type AdapterConfig = { s3Config: S3ClientConfig; bucket: string; uploadQueueSize?: number; root?: string; }; export default class Adapter implements AdapterInterface { s3: S3; bucket: string; uploadQueueSize: number; root: string; constructor({ s3Config, bucket, uploadQueueSize, root }: AdapterConfig); urlToRelativePath(url: URL, baseUrl: URL): string | null; relativePathToUrl(pathname: string, baseUrl: URL): URL; relativePathToKey(pathname: string): string; keyToRelativePath(key: string): string; getComplianceClasses(_url: URL, _request: Request, _response: AuthResponse): Promise<string[]>; getAllowedMethods(_url: URL, _request: Request, _response: AuthResponse): Promise<never[]>; getOptionsResponseCacheControl(_url: URL, _request: Request, _response: AuthResponse): Promise<string>; isAuthorized(_url: URL, _method: string, _baseUrl: URL, _user: User): Promise<boolean>; getResource(url: URL, baseUrl: URL): Promise<Resource>; newResource(url: URL, baseUrl: URL): Promise<Resource>; newCollection(url: URL, baseUrl: URL): Promise<Resource>; getMethod(method: string): typeof Method; }