Add points task submission and review workflow

This commit is contained in:
王鹏
2026-09-16 16:50:05 +08:00
parent 0e24c9e235
commit e31af58d58
24 changed files with 2097 additions and 18 deletions

View File

@@ -7,7 +7,9 @@ import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.storage.model.FileInfo;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
import okhttp3.OkHttpClient;
import okhttp3.Request;
@@ -101,8 +103,19 @@ public class QiNiuUtil {
* @throws UnsupportedEncodingException
*/
public static String fileUrl(String fileName) throws UnsupportedEncodingException {
String encodedFileName = URLEncoder.encode(fileName, "utf-8");
String publicUrl = String.format("%s/%s", QiNiuConfig.getInstance().getDomainOfBucket(), encodedFileName);
String[] parts = fileName.split("/");
StringBuilder encoded = new StringBuilder();
for (String part : parts) {
if (encoded.length() > 0) {
encoded.append('/');
}
encoded.append(URLEncoder.encode(part, "utf-8").replace("+", "%20"));
}
String domain = QiNiuConfig.getInstance().getDomainOfBucket();
if (!domain.startsWith("http://") && !domain.startsWith("https://")) {
domain = "https://" + domain;
}
String publicUrl = String.format("%s/%s", domain.replaceAll("/$", ""), encoded);
Auth auth = getAuth();
long expireInSeconds = QiNiuConfig.getInstance().getExpireInSeconds();
if(-1 == expireInSeconds){
@@ -168,20 +181,46 @@ public class QiNiuUtil {
return auth;
}
/** 生成只允许上传指定任务截图的短期凭证。 */
public static String createTaskImageUploadToken(String key, int expiresSeconds, long fileSizeLimit) {
StringMap policy = new StringMap();
policy.put("insertOnly", 1);
policy.put("fsizeLimit", fileSizeLimit);
policy.put("mimeLimit", "image/jpeg;image/png;image/webp");
return getAuth().uploadToken(QiNiuConfig.getInstance().getBucket(), key, expiresSeconds, policy);
}
/** 判断七牛对象是否真实存在。 */
public static boolean exists(String key) {
Configuration cfg = new Configuration(QiNiuConfig.getInstance().getZone());
BucketManager bucketManager = new BucketManager(getAuth(), cfg);
try {
FileInfo info = bucketManager.stat(QiNiuConfig.getInstance().getBucket(), key);
return info != null && info.fsize > 0;
} catch (QiniuException ex) {
return false;
}
}
/**
* 删除文件
* @param key
*/
public static void delete(String key){
public static boolean delete(String key){
Configuration cfg = new Configuration(QiNiuConfig.getInstance().getZone());
Auth auth = getAuth();
BucketManager bucketManager = new BucketManager(auth, cfg);
try {
bucketManager.delete(QiNiuConfig.getInstance().getBucket(), key);
return true;
} catch (QiniuException ex) {
if (ex.code() == 612) {
return true;
}
//如果遇到异常,说明删除失败
System.err.println(ex.code());
System.err.println(ex.response.toString());
return false;
}
}
}