mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-21 02:25:56 +08:00
更新最新代码
This commit is contained in:
parent
a58d058646
commit
8665bffcff
@ -11,6 +11,7 @@ import com.amazonaws.auth.BasicAWSCredentials;
|
|||||||
import com.amazonaws.client.builder.AwsClientBuilder;
|
import com.amazonaws.client.builder.AwsClientBuilder;
|
||||||
import com.amazonaws.services.s3.AmazonS3;
|
import com.amazonaws.services.s3.AmazonS3;
|
||||||
import com.amazonaws.services.s3.AmazonS3Client;
|
import com.amazonaws.services.s3.AmazonS3Client;
|
||||||
|
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
|
||||||
import com.amazonaws.services.s3.model.*;
|
import com.amazonaws.services.s3.model.*;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
@ -55,12 +56,16 @@ public class OssClient {
|
|||||||
} else {
|
} else {
|
||||||
clientConfig.setProtocol(Protocol.HTTP);
|
clientConfig.setProtocol(Protocol.HTTP);
|
||||||
}
|
}
|
||||||
this.client = AmazonS3Client.builder()
|
AmazonS3ClientBuilder build = AmazonS3Client.builder()
|
||||||
.withEndpointConfiguration(endpointConfig)
|
.withEndpointConfiguration(endpointConfig)
|
||||||
.withClientConfiguration(clientConfig)
|
.withClientConfiguration(clientConfig)
|
||||||
.withCredentials(credentialsProvider)
|
.withCredentials(credentialsProvider)
|
||||||
.disableChunkedEncoding()
|
.disableChunkedEncoding();
|
||||||
.build();
|
if (!StringUtils.containsAny(properties.getEndpoint(), OssConstant.CLOUD_SERVICE)){
|
||||||
|
// minio 使用https限制使用域名访问 需要此配置 站点填域名
|
||||||
|
build.enablePathStyleAccess();
|
||||||
|
}
|
||||||
|
this.client = build.build();
|
||||||
|
|
||||||
createBucket();
|
createBucket();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -95,7 +100,10 @@ public class OssClient {
|
|||||||
ObjectMetadata metadata = new ObjectMetadata();
|
ObjectMetadata metadata = new ObjectMetadata();
|
||||||
metadata.setContentType(contentType);
|
metadata.setContentType(contentType);
|
||||||
metadata.setContentLength(inputStream.available());
|
metadata.setContentLength(inputStream.available());
|
||||||
client.putObject(new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata));
|
PutObjectRequest putObjectRequest = new PutObjectRequest(properties.getBucketName(), path, inputStream, metadata);
|
||||||
|
// 设置上传对象的 Acl 为公共读
|
||||||
|
putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead);
|
||||||
|
client.putObject(putObjectRequest);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
|
throw new OssException("上传文件失败,请检查配置信息:[" + e.getMessage() + "]");
|
||||||
}
|
}
|
||||||
@ -119,18 +127,31 @@ public class OssClient {
|
|||||||
return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
|
return upload(inputStream, getPath(properties.getPrefix(), suffix), contentType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取文件元数据
|
||||||
|
*
|
||||||
|
* @param path 完整文件路径
|
||||||
|
*/
|
||||||
|
public ObjectMetadata getObjectMetadata(String path) {
|
||||||
|
S3Object object = client.getObject(properties.getBucketName(), path);
|
||||||
|
return object.getObjectMetadata();
|
||||||
|
}
|
||||||
|
|
||||||
public String getUrl() {
|
public String getUrl() {
|
||||||
String domain = properties.getDomain();
|
String domain = properties.getDomain();
|
||||||
if (StringUtils.isNotBlank(domain)) {
|
|
||||||
return domain;
|
|
||||||
}
|
|
||||||
String endpoint = properties.getEndpoint();
|
String endpoint = properties.getEndpoint();
|
||||||
String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://";
|
String header = OssConstant.IS_HTTPS.equals(properties.getIsHttps()) ? "https://" : "http://";
|
||||||
// 云服务商直接返回
|
// 云服务商直接返回
|
||||||
if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){
|
if (StringUtils.containsAny(endpoint, OssConstant.CLOUD_SERVICE)){
|
||||||
|
if (StringUtils.isNotBlank(domain)) {
|
||||||
|
return header + domain;
|
||||||
|
}
|
||||||
return header + properties.getBucketName() + "." + endpoint;
|
return header + properties.getBucketName() + "." + endpoint;
|
||||||
}
|
}
|
||||||
// minio 单独处理
|
// minio 单独处理
|
||||||
|
if (StringUtils.isNotBlank(domain)) {
|
||||||
|
return header + domain + "/" + properties.getBucketName();
|
||||||
|
}
|
||||||
return header + endpoint + "/" + properties.getBucketName();
|
return header + endpoint + "/" + properties.getBucketName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user