package com.sonic.shark.service;

import com.sonic.shark.domain.bo.S3StsToken;
import com.sonic.shark.enums.S3BizTypeMappingEnum;
import com.sonic.shark.enums.S3BucketNameEnum;

public interface S3StsService {

    /**
     * 根据业务类型获取用户上传文件的 STS token 文件目录授权
     * @param s3BizTypeMappingEnum
     * @param userId
     * @param suffix
     * @return
     */
    S3StsToken getStsToken(S3BizTypeMappingEnum s3BizTypeMappingEnum, Long userId, String suffix);

    /**
     * 获取STS token基础方法 到文件
     * @param bucketNameEnum
     * @param path
     * @param fileName
     * @return
     */
    S3StsToken getStsTokenPolicy(S3BucketNameEnum bucketNameEnum, String path, String fileName);

    /**
     * 获取S3的STS授权token 底层方法
     *
     * @param policy 授权策略
     * @return
     */
    S3StsToken getStsToken(String region, String path, String policy);

}
