maven依赖
<!-- https://mvnrepository.com/artifact/com.qiniu/qiniu-java-sdk -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.9.0</version>
</dependency>
主类
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class QiniuUtil {
static ObjectMapper objectMapper = new ObjectMapper();
public static String upload(InputStream file, String key) throws Exception {
return upload(file,QiniuConfig.bucketName,QiniuConfig.domain,key);
}
public static String uploadMy(InputStream file,String key) throws Exception {
return upload(file,QiniuConfig.bucketNamePrivate,QiniuConfig.domainPrivate,key);
}
public static String upload(InputStream file,String bucketName,String domain,String key) throws Exception {
Configuration cfg = new Configuration(Region.region2());
UploadManager uploadManager = new UploadManager(cfg);
Auth auth = Auth.create(QiniuConfig.accessKey, QiniuConfig.secretKey);
String upToken = null;
upToken = auth.uploadToken(bucketName);
Response response = uploadManager.put(file, key, upToken, null, null);
DefaultPutRet putRet = objectMapper.readValue(response.bodyString(), DefaultPutRet.class);
return domain + putRet.key;
}
public static void del(String key) throws IOException {
deleteFile(QiniuConfig.bucketName,key);
}
public static void delMy(String key) throws IOException {
deleteFile(QiniuConfig.bucketNamePrivate,key);
}
public static void deleteFile(String bucketName,String key) throws IOException {
Auth auth = Auth.create(QiniuConfig.accessKey, QiniuConfig.secretKey);
Configuration cfg = new Configuration(Region.region2());
BucketManager bucketManager = new BucketManager(auth, cfg);
bucketManager.delete(bucketName, key);
}
public static List<String> listFilesWithPrefix(String prefix, int limit) throws QiniuException {
return listFilesWithPrefix(QiniuConfig.bucketName,prefix,limit);
}
public static List<String> listFilesWithPrefix(String bucketName, String prefix, int limit) throws QiniuException {
Auth auth = Auth.create(QiniuConfig.accessKey, QiniuConfig.secretKey);
Configuration cfg = new Configuration(Region.region2());
BucketManager bucketManager = new BucketManager(auth, cfg);
List<FileInfo> fileInfoList = new ArrayList<>();
BucketManager.FileListIterator fileListIterator = bucketManager.createFileListIterator(bucketName, prefix, limit, null);
while (fileListIterator.hasNext()) {
FileInfo[] fileInfoArray = fileListIterator.next();
fileInfoList.addAll(Arrays.asList(fileInfoArray));
}
List<String> keys = new ArrayList<>();
for (FileInfo fileInfo : fileInfoList) {
keys.add(fileInfo.key);
}
return keys;
}
public static String getPrivateUrl(String url, int expires) {
Auth auth = Auth.create(QiniuConfig.accessKey, QiniuConfig.secretKey);
long expireInSeconds = System.currentTimeMillis() / 1000 + expires;
return auth.privateDownloadUrl(url, expireInSeconds);
}
public static void main(String[] args) throws Exception{
QiniuConfig qiniuConfig = new QiniuConfig();
qiniuConfig.init();
System.out.println(getPrivateUrl("http://myimg.xxx.top/1.png",60));
}
}
配置文件
@Component
@Data
public class QiniuConfig {
public static String PREFIX_U_EDITOR = "codeying/ueditor/";
public static String accessKey;
public static String secretKey;
public static String bucketName;
public static String bucketNamePrivate;
public static String domain;
public static String domainPrivate;
@Value("${qiniu.accessKey}")
private String accessKeyV = "test";
@Value("${qiniu.secretKey}")
private String secretKeyV = "test";
@Value("${qiniu.bucketName}")
private String bucketNameV = "public-img-del";
@Value("${qiniu.bucketName-private}")
private String bucketNamePrivateV = "codeying";
@Value("${qiniu.domain}")
private String domainV = "http://img.codeying.top/";
@Value("${qiniu.domain}")
private String domainPrivateV = "http://myimg.xxx.top/";
@PostConstruct
public void init() {
accessKey = accessKeyV;
secretKey = secretKeyV;
bucketName = bucketNameV;
bucketNamePrivate = bucketNamePrivateV;
domain = domainV;
domainPrivate = domainPrivateV;
}
}