jiangping
2025-06-25 94edf7b79cced9d37f880b95301afb5513fad06d
server/service/src/main/java/com/doumee/core/utils/aliyun/ALiYunUtil.java
@@ -1,17 +1,9 @@
package com.doumee.core.utils.aliyun;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.event.ProgressEvent;
import com.aliyun.oss.event.ProgressEventType;
import com.aliyun.oss.event.ProgressListener;
import com.aliyun.oss.model.*;
import com.aliyun.sdk.service.cloudauth20190307.AsyncClient;
import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyRequest;
import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyResponse;
import com.doumee.core.utils.FileDigest;
import java.io.File;
import java.io.FileInputStream;
@@ -23,10 +15,6 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;
@@ -572,11 +560,11 @@
        return PutObjectProgressListenerBiz.queryProgressModel(id);
    }
    public boolean uploadOnlineObject(InputStream inputStream, String bucketName, String key,String tempId,
                                      String mime) throws OSSException, ClientException, IOException {
                                      long size,String mime) throws OSSException, ClientException, IOException {
        try {
            isExistBucket(bucketName);
            ObjectMetadata objectMeta = new ObjectMetadata();
            objectMeta.setContentLength(inputStream.available());
            objectMeta.setContentLength(size>0?size:inputStream.available());
            // 可以在metadata中标记文件类型
            if (StringUtils.isNotBlank(mime)) {
                objectMeta.setContentType(mime);
@@ -586,15 +574,19 @@
                ProgressModel pmodel = new ProgressModel();
                pmodel.setKey(key);
                pmodel.setId(tempId);
                pmodel.setStatus(0);
                pmodel.setStartDate(new Date());
                putObjectRequest = new PutObjectRequest(bucketName, key,
                        inputStream).withProgressListener(new PutObjectProgressListenerBiz(pmodel));
                pmodel.setTotalBytes(size>0?size:objectMeta.getContentLength());
                putObjectRequest = new PutObjectRequest(bucketName, key, inputStream,objectMeta)
                        .withProgressListener(new PutObjectProgressListenerBiz(pmodel));
//                putObjectRequest.setProgressListener();
            }else{
                putObjectRequest = new PutObjectRequest(bucketName, key,
                        inputStream);
            }
            PutObjectResult putObjectResult = client.putObject(putObjectRequest);
            return true;
            // 下载文件的同时指定进度条参数。此处GetObjectProgressListenerDemo为调用类的类名,请在实际使用时替换为相应的类名。
//            ossClient.getObject(new GetObjectRequest(bucketName,objectName).
//                    <GetObjectRequest>withProgressListener(new GetObjectProgressListenerDemo()));