oak-external-sdk/es/service/s3/S3.d.ts

106 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { S3Zone } from '../../types';
export declare class S3Instance {
private accessKey;
private secretKey;
private client;
private defaultEndpoint?;
private defaultRegion;
constructor(accessKey: string, secretKey: string, endpoint?: string, region?: S3Zone);
private createClient;
/**
* 获取上传信息(预签名 URL)
*/
getUploadInfo(bucket: string, key: string, endpoint?: string, pathStyle?: boolean): Promise<{
key: string;
uploadUrl: string;
bucket: string;
accessKey: string;
}>;
/**
* 删除文件
*/
removeFile(bucket: string, key: string, endpoint?: string, pathStyle?: boolean): Promise<void>;
/**
* 检查对象是否存在
*/
isExistObject(bucket: string, key: string, endpoint?: string, pathStyle?: boolean): Promise<boolean>;
/**
* 获取文件访问 URL
*/
getFileUrl(bucket: string, key: string, endpoint?: string, pathStyle?: boolean): string;
/**
* 创建分片上传
*/
createMultipartUpload(bucket: string, key: string, endpoint?: string, contentType?: string): Promise<{
uploadId: string;
bucket: string;
key: string;
}>;
/**
* 准备分片上传创建分片上传并生成所有分片的预签名URL
* 用于前端直传场景,返回 uploadId 和每个分片的上传 URL
*/
prepareMultipartUpload(bucket: string, key: string, partCount: number, options?: {
endpoint?: string;
contentType?: string;
expiresIn?: number;
}): Promise<{
uploadId: string;
parts: {
partNumber: number;
uploadUrl: string;
}[];
}>;
/**
* 上传分片
*/
uploadPart(bucket: string, key: string, uploadId: string, partNumber: number, body: Buffer | Uint8Array | string, endpoint?: string): Promise<{
partNumber: number;
eTag: string;
}>;
/**
* 完成分片上传
*/
completeMultipartUpload(bucket: string, key: string, uploadId: string, parts: Array<{
partNumber: number;
eTag: string;
}>, endpoint?: string): Promise<{
location: string | undefined;
bucket: string;
key: string;
eTag: string | undefined;
}>;
/**
* 中止分片上传
*/
abortMultipartUpload(bucket: string, key: string, uploadId: string, endpoint?: string): Promise<void>;
/**
* 列出已上传的分片
*/
listParts(bucket: string, key: string, uploadId: string, endpoint?: string, maxParts?: number): Promise<{
parts: {
partNumber: number;
eTag: string;
size: number;
lastModified: Date | undefined;
}[];
isTruncated: boolean | undefined;
nextPartNumberMarker: string | undefined;
}>;
/**
* 获取预签名 URL通用方法
*/
getSignedUrl(bucket: string, key: string, operation?: 'get' | 'put', expiresIn?: number, endpoint?: string): Promise<string>;
/**
* 获取预签名对象URL统一接口
*/
presignObjectUrl(method: 'GET' | 'PUT' | 'POST' | 'DELETE', bucket: string, zone: S3Zone | undefined, key: string, options?: {
expires?: number;
endpoint?: string;
}): Promise<{
url: string;
headers?: Record<string, string | string[]>;
formdata?: Record<string, any>;
}>;
}