添加oss
This commit is contained in:
69
newadmin/oss-service/pom.xml
Normal file
69
newadmin/oss-service/pom.xml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>com.chaozhanggui.system</groupId>
|
||||||
|
<artifactId>admin-system</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>oss-service</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<qiniu.version>7.2.27</qiniu.version>
|
||||||
|
<aliyun.oss.version>2.8.3</aliyun.oss.version>
|
||||||
|
<aliyun.core.version>3.2.2</aliyun.core.version>
|
||||||
|
<qcloud.cos.version>5.4.4</qcloud.cos.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.chaozhanggui.system</groupId>
|
||||||
|
<artifactId>common-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.aliyun.oss</groupId>
|
||||||
|
<artifactId>aliyun-sdk-oss</artifactId>
|
||||||
|
<version>${aliyun.oss.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.qiniu</groupId>
|
||||||
|
<artifactId>qiniu-java-sdk</artifactId>
|
||||||
|
<version>${qiniu.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.qcloud</groupId>
|
||||||
|
<artifactId>cos_api</artifactId>
|
||||||
|
<version>${qcloud.cos.version}</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.huaweicloud</groupId>
|
||||||
|
<artifactId>esdk-obs-java-bundle</artifactId>
|
||||||
|
<version>3.22.3</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
<version>3.8.1</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.dianguang.cloud.ossservice;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
|
import org.springframework.context.annotation.ComponentScan;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EntityScan(basePackageClasses = OssServiceConfig.class)
|
||||||
|
@ComponentScan(basePackageClasses = OssServiceConfig.class)
|
||||||
|
public class OssServiceConfig {
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
package com.dianguang.cloud.ossservice.config;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@ConfigurationProperties(prefix = "cloudstorage")
|
||||||
|
@Data
|
||||||
|
public class CloudStorageConfig implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型 1:七牛 2:阿里 3 :腾讯云 4: fastDfs 5:本地上传 6:minio
|
||||||
|
*/
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 域名
|
||||||
|
*/
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 路径前缀
|
||||||
|
*/
|
||||||
|
private String prefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* access_key
|
||||||
|
*/
|
||||||
|
private String accessKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* secret_key
|
||||||
|
*/
|
||||||
|
private String secretKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 存储空间命
|
||||||
|
*/
|
||||||
|
private String bucketName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 阿里
|
||||||
|
*/
|
||||||
|
private String endPoint;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qc
|
||||||
|
*/
|
||||||
|
private String qcloudRegion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qc
|
||||||
|
*/
|
||||||
|
private String qcloudAppId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 常量
|
||||||
|
*
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public interface Constant {
|
||||||
|
/**
|
||||||
|
* 云服务商
|
||||||
|
*/
|
||||||
|
enum CloudService {
|
||||||
|
/**
|
||||||
|
* 七牛云
|
||||||
|
*/
|
||||||
|
QINIU(1),
|
||||||
|
/**
|
||||||
|
* 阿里云
|
||||||
|
*/
|
||||||
|
ALIYUN(2),
|
||||||
|
/**
|
||||||
|
* 腾讯云
|
||||||
|
*/
|
||||||
|
QCLOUD(3),
|
||||||
|
/**
|
||||||
|
* 华为云
|
||||||
|
*/
|
||||||
|
HUAWEI(4);
|
||||||
|
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
CloudService(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
import com.chaozhanggui.common.system.util.DateUtils;
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 云存储(支持七牛、阿里云、腾讯云)
|
||||||
|
*
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public abstract class AbstractCloudStorageService {
|
||||||
|
/** 云存储配置信息 */
|
||||||
|
CloudStorageConfig config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件路径
|
||||||
|
* @param prefix 前缀
|
||||||
|
* @param suffix 后缀
|
||||||
|
* @return 返回上传路径
|
||||||
|
*/
|
||||||
|
public String getPath(String prefix, String suffix) {
|
||||||
|
//生成uuid
|
||||||
|
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
|
||||||
|
//文件路径
|
||||||
|
String path = DateUtils.getDays() + "/" + uuid;
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(prefix)){
|
||||||
|
path = prefix + "/" + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
return path + "." + suffix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
* @param data 文件字节数组
|
||||||
|
* @param path 文件路径,包含文件名
|
||||||
|
* @return 返回http地址
|
||||||
|
*/
|
||||||
|
public abstract String upload(byte[] data, String path) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
* @param data 文件字节数组
|
||||||
|
* @param suffix 后缀
|
||||||
|
* @return 返回http地址
|
||||||
|
*/
|
||||||
|
public abstract String uploadSuffix(byte[] data, String suffix) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
* @param inputStream 字节流
|
||||||
|
* @param path 文件路径,包含文件名
|
||||||
|
* @return 返回http地址
|
||||||
|
*/
|
||||||
|
public abstract String upload(InputStream inputStream, String path) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
* @param inputStream 字节流
|
||||||
|
* @param suffix 后缀
|
||||||
|
* @return 返回http地址
|
||||||
|
*/
|
||||||
|
public abstract String uploadSuffix(InputStream inputStream, String suffix) throws Exception;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
import com.aliyun.oss.OSSClient;
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 阿里云存储
|
||||||
|
*
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public class AliyunCloudStorageService extends AbstractCloudStorageService {
|
||||||
|
|
||||||
|
public AliyunCloudStorageService(CloudStorageConfig config){
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(byte[] data, String path) throws Exception {
|
||||||
|
return upload(new ByteArrayInputStream(data), path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(InputStream inputStream, String path) throws Exception {
|
||||||
|
OSSClient client = new OSSClient(config.getEndPoint(), config.getAccessKey(),
|
||||||
|
config.getSecretKey());
|
||||||
|
try {
|
||||||
|
client.putObject(config.getBucketName(), path, inputStream);
|
||||||
|
client.shutdown();
|
||||||
|
} catch (Exception e){
|
||||||
|
throw new Exception("上传异常");
|
||||||
|
}
|
||||||
|
|
||||||
|
return "https://"+config.getUrl() + "/" + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(byte[] data, String suffix) throws Exception {
|
||||||
|
return upload(data, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(InputStream inputStream, String suffix) throws Exception {
|
||||||
|
return upload(inputStream, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
import com.obs.services.ObsClient;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
public class HuaweiCloudStorageService extends AbstractCloudStorageService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public HuaweiCloudStorageService(CloudStorageConfig config){
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String upload(byte[] data, String path) throws Exception {
|
||||||
|
|
||||||
|
return upload(new ByteArrayInputStream(data), path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(byte[] data, String suffix) throws Exception {
|
||||||
|
return upload(data, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(InputStream inputStream, String path) throws Exception {
|
||||||
|
ObsClient client = new ObsClient(config.getAccessKey(),config.getSecretKey(),config.getEndPoint());
|
||||||
|
try {
|
||||||
|
client.putObject(config.getBucketName(), path, inputStream);
|
||||||
|
} catch (Exception e){
|
||||||
|
throw new Exception("上传失败");
|
||||||
|
}
|
||||||
|
return config.getUrl() + "/" + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(InputStream inputStream, String suffix) throws Exception {
|
||||||
|
return upload(inputStream, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
import com.dianguang.cloud.ossservice.model.Constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传Factory
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public final class OSSFactory {
|
||||||
|
public static AbstractCloudStorageService build(CloudStorageConfig config){
|
||||||
|
|
||||||
|
if(config.getType() == Constant.CloudService.QINIU.getValue()){
|
||||||
|
return new QiniuCloudStorageService(config);
|
||||||
|
}else if(config.getType() == Constant.CloudService.ALIYUN.getValue()){
|
||||||
|
return new AliyunCloudStorageService(config);
|
||||||
|
}else if(config.getType() == Constant.CloudService.QCLOUD.getValue()){
|
||||||
|
return new QcloudCloudStorageService(config);
|
||||||
|
}else if(config.getType() == Constant.CloudService.HUAWEI.getValue()){
|
||||||
|
return new HuaweiCloudStorageService(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
import com.qcloud.cos.COSClient;
|
||||||
|
import com.qcloud.cos.ClientConfig;
|
||||||
|
import com.qcloud.cos.auth.BasicCOSCredentials;
|
||||||
|
import com.qcloud.cos.auth.COSCredentials;
|
||||||
|
import com.qcloud.cos.model.ObjectMetadata;
|
||||||
|
import com.qcloud.cos.model.PutObjectRequest;
|
||||||
|
import com.qcloud.cos.model.PutObjectResult;
|
||||||
|
import com.qcloud.cos.region.Region;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 腾讯云存储
|
||||||
|
*
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public class QcloudCloudStorageService extends AbstractCloudStorageService {
|
||||||
|
private COSCredentials credentials;
|
||||||
|
private ClientConfig clientConfig;
|
||||||
|
|
||||||
|
public QcloudCloudStorageService(CloudStorageConfig config){
|
||||||
|
this.config = config;
|
||||||
|
|
||||||
|
//初始化
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(){
|
||||||
|
//1、初始化用户身份信息(secretId, secretKey)
|
||||||
|
credentials = new BasicCOSCredentials(config.getAccessKey(), config.getSecretKey());
|
||||||
|
|
||||||
|
//2、设置bucket的区域, COS地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
|
||||||
|
clientConfig = new ClientConfig(new Region(config.getQcloudRegion()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(byte[] data, String path) throws Exception {
|
||||||
|
return upload(new ByteArrayInputStream(data), path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(InputStream inputStream, String path) throws Exception {
|
||||||
|
try {
|
||||||
|
COSClient client = new COSClient(credentials, clientConfig);
|
||||||
|
|
||||||
|
ObjectMetadata metadata = new ObjectMetadata();
|
||||||
|
metadata.setContentLength(inputStream.available());
|
||||||
|
String bucketName = config.getBucketName() +"-"+ config.getQcloudAppId();
|
||||||
|
PutObjectRequest request = new PutObjectRequest(bucketName, path, inputStream, metadata);
|
||||||
|
PutObjectResult result = client.putObject(request);
|
||||||
|
|
||||||
|
client.shutdown();
|
||||||
|
if(result.getETag() == null){
|
||||||
|
throw new Exception("上传失败");
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new Exception("上传失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return config.getUrl() + "/" + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(byte[] data, String suffix) throws Exception {
|
||||||
|
return upload(data, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(InputStream inputStream, String suffix) throws Exception {
|
||||||
|
return upload(inputStream, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2018 人人开源 All rights reserved.
|
||||||
|
*
|
||||||
|
* https://www.renren.io
|
||||||
|
*
|
||||||
|
* 版权所有,侵权必究!
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.dianguang.cloud.ossservice.service;
|
||||||
|
|
||||||
|
import com.dianguang.cloud.ossservice.config.CloudStorageConfig;
|
||||||
|
import com.qiniu.http.Response;
|
||||||
|
import com.qiniu.storage.Configuration;
|
||||||
|
import com.qiniu.storage.Region;
|
||||||
|
import com.qiniu.storage.UploadManager;
|
||||||
|
import com.qiniu.util.Auth;
|
||||||
|
import com.qiniu.util.IOUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 七牛云存储
|
||||||
|
*
|
||||||
|
* @author Mark sunlightcs@gmail.com
|
||||||
|
*/
|
||||||
|
public class QiniuCloudStorageService extends AbstractCloudStorageService {
|
||||||
|
private UploadManager uploadManager;
|
||||||
|
private String token;
|
||||||
|
|
||||||
|
public QiniuCloudStorageService(CloudStorageConfig config){
|
||||||
|
this.config = config;
|
||||||
|
|
||||||
|
//初始化
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(){
|
||||||
|
uploadManager = new UploadManager(new Configuration(Region.autoRegion()));
|
||||||
|
token = Auth.create(config.getAccessKey(), config.getSecretKey()).
|
||||||
|
uploadToken(config.getBucketName());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(byte[] data, String path) throws Exception {
|
||||||
|
try {
|
||||||
|
Response res = uploadManager.put(data, path, token);
|
||||||
|
if (!res.isOK()) {
|
||||||
|
throw new Exception("上传失败");
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception("上传失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return config.getUrl() + "/" + path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String upload(InputStream inputStream, String path) throws Exception {
|
||||||
|
try {
|
||||||
|
byte[] data = IOUtils.toByteArray(inputStream);
|
||||||
|
return this.upload(data, path);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new IOException("上传失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(byte[] data, String suffix) throws Exception {
|
||||||
|
return upload(data, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String uploadSuffix(InputStream inputStream, String suffix) throws Exception {
|
||||||
|
return upload(inputStream, getPath(config.getPrefix(), suffix));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user