package cn.iocoder.yudao.module.infra.service.file;

import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.*;

/**
 * 分片上传服务接口
 *
 * @author AI Assistant
 */
public interface MultipartUploadService {

    /**
     * 初始化分片上传
     *
     * @param request 初始化请求
     * @return 初始化响应
     */
    MultipartUploadInitResponse initMultipartUpload(MultipartUploadInitRequest request);

    /**
     * 获取分片预签名URL
     *
     * @param uploadId 上传会话ID
     * @param partNumber 分片编号
     * @param expires 有效期（秒）
     * @return 预签名URL响应
     */
    ChunkPresignedUrlResponse getChunkPresignedUrl(String uploadId, Integer partNumber, Integer expires);

    /**
     * 完成分片上传
     *
     * @param request 完成请求
     * @return 完成响应
     */
    MultipartUploadCompleteResponse completeMultipartUpload(MultipartUploadCompleteRequest request);

    /**
     * 取消分片上传
     *
     * @param uploadId 上传会话ID
     */
    void abortMultipartUpload(String uploadId);

} 