package cn.reghao.oss.api.iface;

import cn.reghao.oss.api.dto.ObjectChannel;
import cn.reghao.oss.api.dto.ObjectInfo;
import cn.reghao.oss.api.dto.StoreInfo;
import cn.reghao.oss.api.dto.media.AudioInfo;
import cn.reghao.oss.api.dto.media.ConvertedImageInfo;
import cn.reghao.oss.api.dto.media.ImageInfo;
import cn.reghao.oss.api.dto.media.VideoInfo;

/**
 * 对 oss-store 进行操作
 * oss-console 调用
 *
 * @author reghao
 * @date 2023-08-01 14:51:50
 */
public interface StoreService {
    void createChannel(String channelPrefix);
    StoreInfo getStoreInfo();

    void setObjectScope(String objectId, int scope);
    void deleteByObjectId(String objectId);
    void deleteByObjectUrl(String objectUrl);
    ObjectInfo getObjectInfo(String objectId);
    String getSignedUrl(String objectId);

    VideoInfo getVideoInfo(String objectId);
    ImageInfo getImageInfo(String objectId);
    ConvertedImageInfo getWebpInfo(String objectId);
    AudioInfo getAudioInfo(String objectId);
}
