package com.cusc.nirvana.user.rnr.fp.service;

import com.cusc.nirvana.user.rnr.fp.dto.FileDownloadDTO;
import com.cusc.nirvana.user.rnr.fp.dto.FileRecordDTO;
import com.cusc.nirvana.user.rnr.fp.dto.OssDownloadRs;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;

/**
 * @author stayAnd
 * @date 2022/4/19
 */
public interface IFileService {

	/**
	 * 上传图片流
	 * @param inputStream inputStream
	 * @param suffix suffix
	 * @return oss 文件的key
	 */
	String upLoadImage(InputStream inputStream,String suffix);


	/**
	 * 上传文件流
	 * @param inputStream inputStream
	 * @param suffix suffix
	 * @return oss 文件的key
	 */
	String upLoadFile(InputStream inputStream,String suffix);


	/**
	 * 上传base64
	 * @param base64 base64
	 * @param suffix suffix
	 * @return oss 文件的key
	 */
	String upLoadImgBase64(String base64, String suffix);

	/**
	 * 上传base64
	 * @param base64 base64
	 * @param suffix suffix
	 * @return oss 文件的key
	 */
	String upLoadFileBase64(String base64, String suffix);



	/**
	 * 获取文件的url
	 * @param fileKey 文件key
	 * @return url
	 */
	String getFileUrl(String fileKey);


	/**
	 * 下载文件base64
	 * @param fileKey 文件key
	 * @return base64
	 */
	String downLoadBase64(String fileKey);


	/**
	 * 获取文件大小
	 * @param fileKey 文件key
	 * @return 文件大小
	 */
	Double getFileSize(String fileKey);


	/**
	 * 下载byte数组
	 * @param fileKey 文件key
	 * @return byte[]
	 */
	byte[] downLoadBytes(String fileKey);

	String doMarkText(MultipartFile reqFile, String userId) throws Exception;
}
