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

123 lines
3.9 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
* @param bucket 桶
* @param key 对象键
* @param uploadId 上传 ID
* @param from 起始分片号
* @param to 结束分片号
* @param options 配置项
* @returns 分片预签名 URL 列表
*/
presignMulti(bucket: string, key: string, uploadId: string, from: number, to: number, options?: {
endpoint?: string;
expiresIn?: number;
}): Promise<{
partNumber: number;
uploadUrl: 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>;
}>;
}