Skip to content

Commit 0ec793e

Browse files
Time-wCharles7c
authored andcommitted
feat(storage): 支持分片上传初始化及相关功能
1 parent 552ccab commit 0ec793e

File tree

12 files changed

+709
-68
lines changed

12 files changed

+709
-68
lines changed

continew-starter-storage/src/main/java/top/continew/starter/storage/autoconfigure/LocalStorageAutoConfiguration.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package top.continew.starter.storage.autoconfigure;
1818

19+
import cn.hutool.core.util.StrUtil;
1920
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2021
import org.springframework.context.annotation.Bean;
2122
import top.continew.starter.core.constant.PropertiesConstants;
@@ -52,6 +53,15 @@ public LocalStorageAutoConfiguration(StorageProperties storageProperties) {
5253
public void register(List<StorageStrategy> strategies) {
5354
for (LocalStorageConfig config : storageProperties.getLocal()) {
5455
if (config.isEnabled()) {
56+
if (config.getMultipartUploadThreshold() == null || config.getMultipartUploadThreshold() <= 0) {
57+
config.setMultipartUploadThreshold(storageProperties.getMultipartUploadThreshold());
58+
}
59+
if (config.getMultipartUploadPartSize() == null || config.getMultipartUploadPartSize() <= 0) {
60+
config.setMultipartUploadPartSize(storageProperties.getMultipartUploadPartSize());
61+
}
62+
if (StrUtil.isBlank(config.getMultipartTempDir())) {
63+
config.setMultipartTempDir(storageProperties.getLocalMultipartTempDir());
64+
}
5565
strategies.add(new LocalStorageStrategy(config));
5666
}
5767
}

continew-starter-storage/src/main/java/top/continew/starter/storage/autoconfigure/OssStorageAutoConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ public OssStorageAutoConfiguration(StorageProperties properties) {
5252
public void register(List<StorageStrategy> strategies) {
5353
for (OssStorageConfig config : properties.getOss()) {
5454
if (config.isEnabled()) {
55+
if (config.getMultipartUploadThreshold() == null || config.getMultipartUploadThreshold() <= 0) {
56+
config.setMultipartUploadThreshold(properties.getMultipartUploadThreshold());
57+
}
58+
if (config.getMultipartUploadPartSize() == null || config.getMultipartUploadPartSize() <= 0) {
59+
config.setMultipartUploadPartSize(properties.getMultipartUploadPartSize());
60+
}
5561
strategies.add(new OssStorageStrategy(config));
5662
}
5763
}

continew-starter-storage/src/main/java/top/continew/starter/storage/autoconfigure/properties/LocalStorageConfig.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package top.continew.starter.storage.autoconfigure.properties;
1818

19+
import top.continew.starter.storage.common.constant.StorageConstant;
20+
1921
/**
2022
* 本地存储配置
2123
*
@@ -44,6 +46,21 @@ public class LocalStorageConfig {
4446
*/
4547
private String endpoint;
4648

49+
/**
50+
* 多部分上传阈值(字节)
51+
*/
52+
private Long multipartUploadThreshold;
53+
54+
/**
55+
* 多部分上传的部分大小(字节)
56+
*/
57+
private Long multipartUploadPartSize;
58+
59+
/**
60+
* 分片上传临时目录
61+
*/
62+
private String multipartTempDir = StorageConstant.DEFAULT_LOCAL_MULTIPART_TEMP_DIR;
63+
4764
public boolean isEnabled() {
4865
return enabled;
4966
}
@@ -75,4 +92,28 @@ public String getEndpoint() {
7592
public void setEndpoint(String endpoint) {
7693
this.endpoint = endpoint;
7794
}
95+
96+
public Long getMultipartUploadThreshold() {
97+
return multipartUploadThreshold;
98+
}
99+
100+
public void setMultipartUploadThreshold(Long multipartUploadThreshold) {
101+
this.multipartUploadThreshold = multipartUploadThreshold;
102+
}
103+
104+
public Long getMultipartUploadPartSize() {
105+
return multipartUploadPartSize;
106+
}
107+
108+
public void setMultipartUploadPartSize(Long multipartUploadPartSize) {
109+
this.multipartUploadPartSize = multipartUploadPartSize;
110+
}
111+
112+
public String getMultipartTempDir() {
113+
return multipartTempDir;
114+
}
115+
116+
public void setMultipartTempDir(String multipartTempDir) {
117+
this.multipartTempDir = multipartTempDir;
118+
}
78119
}

continew-starter-storage/src/main/java/top/continew/starter/storage/autoconfigure/properties/OssStorageConfig.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ public class OssStorageConfig {
7474
/**
7575
* 多部分上传阈值(字节)
7676
*/
77-
private long multipartUploadThreshold = StorageConstant.DEFAULT_FILE_SIZE;
77+
private Long multipartUploadThreshold;
7878

7979
/**
8080
* 多部分上传的部分大小(字节)
8181
*/
82-
private long multipartUploadPartSize = StorageConstant.DEFAULT_FILE_SIZE;
82+
private Long multipartUploadPartSize;
8383

8484
/**
8585
* 请求超时时间(秒)
@@ -168,19 +168,19 @@ public void setTransferAccelerationEnabled(boolean transferAccelerationEnabled)
168168
this.transferAccelerationEnabled = transferAccelerationEnabled;
169169
}
170170

171-
public long getMultipartUploadThreshold() {
171+
public Long getMultipartUploadThreshold() {
172172
return multipartUploadThreshold;
173173
}
174174

175-
public void setMultipartUploadThreshold(long multipartUploadThreshold) {
175+
public void setMultipartUploadThreshold(Long multipartUploadThreshold) {
176176
this.multipartUploadThreshold = multipartUploadThreshold;
177177
}
178178

179-
public long getMultipartUploadPartSize() {
179+
public Long getMultipartUploadPartSize() {
180180
return multipartUploadPartSize;
181181
}
182182

183-
public void setMultipartUploadPartSize(long multipartUploadPartSize) {
183+
public void setMultipartUploadPartSize(Long multipartUploadPartSize) {
184184
this.multipartUploadPartSize = multipartUploadPartSize;
185185
}
186186

continew-starter-storage/src/main/java/top/continew/starter/storage/autoconfigure/properties/StorageProperties.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,21 @@ public class StorageProperties {
4343
*/
4444
private DefaultStorageSource defaultStorageSource = DefaultStorageSource.DYNAMIC;
4545

46+
/**
47+
* 全局分片阈值(字节)
48+
*/
49+
private long multipartUploadThreshold = StorageConstant.DEFAULT_MULTIPART_UPLOAD_THRESHOLD;
50+
51+
/**
52+
* 全局分片大小(字节)
53+
*/
54+
private long multipartUploadPartSize = StorageConstant.DEFAULT_MULTIPART_UPLOAD_PART_SIZE;
55+
56+
/**
57+
* 全局本地分片临时目录
58+
*/
59+
private String localMultipartTempDir = StorageConstant.DEFAULT_LOCAL_MULTIPART_TEMP_DIR;
60+
4661
/**
4762
* 本地存储配置列表
4863
*/
@@ -84,4 +99,28 @@ public List<OssStorageConfig> getOss() {
8499
public void setOss(List<OssStorageConfig> oss) {
85100
this.oss = oss;
86101
}
102+
103+
public long getMultipartUploadThreshold() {
104+
return multipartUploadThreshold;
105+
}
106+
107+
public void setMultipartUploadThreshold(long multipartUploadThreshold) {
108+
this.multipartUploadThreshold = multipartUploadThreshold;
109+
}
110+
111+
public long getMultipartUploadPartSize() {
112+
return multipartUploadPartSize;
113+
}
114+
115+
public void setMultipartUploadPartSize(long multipartUploadPartSize) {
116+
this.multipartUploadPartSize = multipartUploadPartSize;
117+
}
118+
119+
public String getLocalMultipartTempDir() {
120+
return localMultipartTempDir;
121+
}
122+
123+
public void setLocalMultipartTempDir(String localMultipartTempDir) {
124+
this.localMultipartTempDir = localMultipartTempDir;
125+
}
87126
}

continew-starter-storage/src/main/java/top/continew/starter/storage/common/constant/StorageConstant.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,21 @@ public class StorageConstant {
4646
*/
4747
public static final Long DEFAULT_FILE_SIZE = 1024 * 1024 * 10L;
4848

49+
/**
50+
* 默认分片阈值(字节)
51+
*/
52+
public static final Long DEFAULT_MULTIPART_UPLOAD_THRESHOLD = DEFAULT_FILE_SIZE;
53+
54+
/**
55+
* 默认分片大小(字节)
56+
*/
57+
public static final Long DEFAULT_MULTIPART_UPLOAD_PART_SIZE = 5 * 1024 * 1024L;
58+
59+
/**
60+
* 本地分片上传临时目录
61+
*/
62+
public static final String DEFAULT_LOCAL_MULTIPART_TEMP_DIR = "/tmp";
63+
4964
/**
5065
* 默认的对象ACL
5166
*/

0 commit comments

Comments
 (0)