├── .gitignore
├── README.md
├── pom.xml
└── src
└── main
├── java
└── com
│ └── pig4cloud
│ └── fastdfs
│ ├── FdfsAutoConfiguration.java
│ └── FdfsProperties.java
└── resources
└── META-INF
├── additional-spring-configuration-metadata.json
├── spring.factories
└── spring.provides
/.gitignore:
--------------------------------------------------------------------------------
1 | ######################
2 | # Eclipse
3 | ######################
4 | .project
5 | .metadata
6 | local.properties
7 | .classpath
8 | .settings/
9 | .loadpath
10 | .externalToolBuilders/
11 | *.launch
12 | .cproject
13 | .buildpath
14 | .springBeans
15 | .factorypath
16 |
17 | ######################
18 | # Intellij
19 | ######################
20 | .idea/
21 | *.iml
22 | *.iws
23 | *.ipr
24 | *.ids
25 | *.orig
26 |
27 | ######################
28 | # Maven
29 | ######################
30 | logs/
31 | target/
32 |
33 | ######################
34 | # Gradle
35 | ######################
36 | .gradle/
37 |
38 | ######################
39 | # Node
40 | ######################
41 | node/
42 | node_modules/
43 |
44 | ######################
45 | # Bower
46 | ######################
47 | bower_components/
48 |
49 | ######################
50 | # SASS
51 | ######################
52 | .sass-cache/
53 | .tmp/
54 |
55 | ######################
56 | # Windows
57 | ######################
58 | Thumbs.db
59 | Desktop.ini
60 |
61 | ######################
62 | # Mac OSX
63 | ######################
64 | .DS_Store
65 | ._*
66 | .Spotlight-V100
67 | .Trashes
68 |
69 | ######################
70 | # SVN
71 | ######################
72 | .svn
73 |
74 | ######################
75 | # Logs and databases
76 | ######################
77 | *.log
78 | *.sqlite
79 | *.state
80 | *.lock
81 | *.crf
82 | *.drf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Spring Boot FastDFS Starter
2 |
3 | Usage:
4 |
5 | Add dependency **fastdfs-spring-boot-starter** to **pom.xml**
6 |
7 | ```xml
8 |
9 | com.pig4cloud.fastdfs
10 | fastdfs-spring-boot-starter
11 | 0.4.0
12 |
13 | ```
14 |
15 | Config **application.yml**
16 |
17 | ```yml
18 | fdfs:
19 | connect-timeout: 2000
20 | so-timeout: 3000
21 | tracker-list:
22 | - 10.1.5.85:22122
23 | - 10.1.5.86:22122
24 |
25 | ```
26 |
27 | Inject **FastFileStorageClient**
28 |
29 | ```java
30 | @Autowired
31 | private FastFileStorageClient storageClient;
32 | ```
33 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
3 | 4.0.0
4 | com.pig4cloud.fastdfs
5 | fastdfs-spring-boot-starter
6 | 0.4.0
7 | jar
8 |
9 | org.springframework.boot
10 | spring-boot-starter-parent
11 | 2.2.5.RELEASE
12 |
13 | FastDFS Spring Boot Starter
14 | https://github.com/luhuiguo/fastdfs-spring-boot-starter
15 |
16 | Starter for using FastDFS(An open source high performance distributed file system).
17 |
18 |
19 |
20 | The GNU Lesser General Public License, version 3.0
21 | http://opensource.org/licenses/LGPL-3.0
22 |
23 |
24 |
25 |
26 | luhuiguo
27 | luhuiguo@gmail.com
28 |
29 |
30 | lengleng
31 | wangiegie@gmail.com
32 |
33 |
34 |
35 | scm:git:git@github.com:luhuiguo/fastdfs-spring-boot-starter.git
36 | scm:git:git@github.com:luhuiguo/fastdfs-spring-boot-starter.git
37 | git@github.com:luhuiguo/fastdfs-spring-boot-starter.git
38 |
39 |
40 |
41 | 1.8
42 | UTF-8
43 | UTF-8
44 |
45 | 0.4.0
46 | 1.2.2
47 |
48 |
49 |
50 |
51 | com.luhuiguo
52 | fastdfs-client
53 | ${fastdfs-client.version}
54 |
55 |
56 |
57 | org.springframework.boot
58 | spring-boot-starter
59 | provided
60 |
61 |
62 | org.springframework.boot
63 | spring-boot-configuration-processor
64 | true
65 |
66 |
67 |
68 |
69 | ossrh
70 | https://oss.sonatype.org/content/repositories/snapshots
71 |
72 |
73 | ossrh
74 | https://oss.sonatype.org/service/local/staging/deploy/maven2/
75 |
76 |
77 |
78 |
79 |
80 | org.apache.maven.plugins
81 | maven-compiler-plugin
82 | 3.5.1
83 |
84 | 1.8
85 | 1.8
86 | true
87 | true
88 | UTF-8
89 |
90 |
91 |
92 | org.apache.maven.plugins
93 | maven-source-plugin
94 | 3.0.1
95 |
96 | true
97 |
98 |
99 |
100 | compile
101 |
102 | jar
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | release
112 |
113 |
114 |
115 |
116 | org.apache.maven.plugins
117 | maven-source-plugin
118 | 2.2.1
119 |
120 |
121 | package
122 |
123 | jar-no-fork
124 |
125 |
126 |
127 |
128 |
129 |
130 | org.apache.maven.plugins
131 | maven-javadoc-plugin
132 | 2.9.1
133 |
134 | private
135 | true
136 | UTF-8
137 | UTF-8
138 | UTF-8
139 | -Xdoclint:none
140 |
141 |
142 |
143 | package
144 |
145 | jar
146 |
147 |
148 |
149 |
150 |
151 |
152 | org.apache.maven.plugins
153 | maven-gpg-plugin
154 | 1.5
155 |
156 |
157 | verify
158 |
159 | sign
160 |
161 |
162 |
163 |
164 |
165 | org.sonatype.plugins
166 | nexus-staging-maven-plugin
167 | 1.6.8
168 | true
169 |
170 | sonatype
171 | https://oss.sonatype.org/
172 | true
173 |
174 |
175 |
176 |
177 |
178 |
179 | sonatype
180 |
181 | https://oss.sonatype.org/content/repositories/snapshots/
182 |
183 |
184 |
185 | sonatype
186 |
187 | https://oss.sonatype.org/service/local/staging/deploy/maven2/
188 |
189 |
190 |
191 |
192 |
193 |
194 |
--------------------------------------------------------------------------------
/src/main/java/com/pig4cloud/fastdfs/FdfsAutoConfiguration.java:
--------------------------------------------------------------------------------
1 | package com.pig4cloud.fastdfs;
2 |
3 | import org.springframework.boot.context.properties.ConfigurationProperties;
4 | import org.springframework.boot.context.properties.EnableConfigurationProperties;
5 | import org.springframework.context.annotation.Bean;
6 | import org.springframework.context.annotation.Configuration;
7 |
8 | import com.luhuiguo.fastdfs.conn.ConnectionManager;
9 | import com.luhuiguo.fastdfs.conn.ConnectionPoolConfig;
10 | import com.luhuiguo.fastdfs.conn.FdfsConnectionPool;
11 | import com.luhuiguo.fastdfs.conn.PooledConnectionFactory;
12 | import com.luhuiguo.fastdfs.conn.TrackerConnectionManager;
13 | import com.luhuiguo.fastdfs.service.AppendFileStorageClient;
14 | import com.luhuiguo.fastdfs.service.DefaultAppendFileStorageClient;
15 | import com.luhuiguo.fastdfs.service.DefaultFastFileStorageClient;
16 | import com.luhuiguo.fastdfs.service.DefaultTrackerClient;
17 | import com.luhuiguo.fastdfs.service.FastFileStorageClient;
18 | import com.luhuiguo.fastdfs.service.TrackerClient;
19 |
20 | @Configuration
21 | @EnableConfigurationProperties(FdfsProperties.class)
22 | public class FdfsAutoConfiguration {
23 |
24 | private final FdfsProperties properties;
25 |
26 | public FdfsAutoConfiguration(FdfsProperties properties) {
27 | super();
28 | this.properties = properties;
29 | }
30 |
31 | @Bean
32 | public PooledConnectionFactory pooledConnectionFactory() {
33 | PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory();
34 | pooledConnectionFactory.setSoTimeout(properties.getSoTimeout());
35 | pooledConnectionFactory.setConnectTimeout(properties.getConnectTimeout());
36 | return pooledConnectionFactory;
37 | }
38 |
39 |
40 | @Bean
41 | @ConfigurationProperties(prefix = "fdfs.pool")
42 | public ConnectionPoolConfig connectionPoolConfig() {
43 | ConnectionPoolConfig connectionPoolConfig = new ConnectionPoolConfig();
44 | return connectionPoolConfig;
45 | }
46 |
47 | @Bean
48 | public FdfsConnectionPool fdfsConnectionPool(PooledConnectionFactory pooledConnectionFactory,
49 | ConnectionPoolConfig connectionPoolConfig) {
50 | FdfsConnectionPool pool = new FdfsConnectionPool(pooledConnectionFactory, connectionPoolConfig);
51 | return pool;
52 | }
53 |
54 | @Bean
55 | public TrackerConnectionManager trackerConnectionManager(FdfsConnectionPool fdfsConnectionPool) {
56 | return new TrackerConnectionManager(fdfsConnectionPool, properties.getTrackerList());
57 | }
58 |
59 | @Bean
60 | public TrackerClient trackerClient(TrackerConnectionManager trackerConnectionManager) {
61 | return new DefaultTrackerClient(trackerConnectionManager);
62 | }
63 |
64 | @Bean
65 | public ConnectionManager connectionManager(FdfsConnectionPool fdfsConnectionPool) {
66 | return new ConnectionManager(fdfsConnectionPool);
67 | }
68 |
69 | @Bean
70 | public FastFileStorageClient fastFileStorageClient(TrackerClient trackerClient,
71 | ConnectionManager connectionManager) {
72 | return new DefaultFastFileStorageClient(trackerClient, connectionManager);
73 | }
74 |
75 | @Bean
76 | public AppendFileStorageClient appendFileStorageClient(TrackerClient trackerClient,
77 | ConnectionManager connectionManager) {
78 | return new DefaultAppendFileStorageClient(trackerClient, connectionManager);
79 | }
80 |
81 | }
82 |
--------------------------------------------------------------------------------
/src/main/java/com/pig4cloud/fastdfs/FdfsProperties.java:
--------------------------------------------------------------------------------
1 | package com.pig4cloud.fastdfs;
2 |
3 | import java.util.ArrayList;
4 | import java.util.List;
5 |
6 | import org.springframework.boot.context.properties.ConfigurationProperties;
7 |
8 | @ConfigurationProperties(prefix = "fdfs")
9 | public class FdfsProperties {
10 |
11 | /** 读取时间 */
12 | private int soTimeout = 1000;
13 | /** 连接超时时间 */
14 | private int connectTimeout = 1000;
15 |
16 | /** Tracker 地址列表 */
17 | private List trackerList = new ArrayList<>();
18 |
19 | public int getSoTimeout() {
20 | return soTimeout;
21 | }
22 |
23 | public void setSoTimeout(int soTimeout) {
24 | this.soTimeout = soTimeout;
25 | }
26 |
27 | public int getConnectTimeout() {
28 | return connectTimeout;
29 | }
30 |
31 | public void setConnectTimeout(int connectTimeout) {
32 | this.connectTimeout = connectTimeout;
33 | }
34 |
35 | public List getTrackerList() {
36 | return trackerList;
37 | }
38 |
39 | public void setTrackerList(List trackerList) {
40 | this.trackerList = trackerList;
41 | }
42 |
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "hints": [],
3 | "properties": [
4 | {
5 | "sourceType": "com.pig4cloud.fastdfs.FdfsProperties",
6 | "name": "fdfs",
7 | "type": "com.pig4cloud.fastdfs.FdfsProperties"
8 | },
9 | {
10 | "sourceType": "com.pig4cloud.fastdfs.FdfsProperties",
11 | "name": "fdfs.so-timeout",
12 | "description": "读取时间.",
13 | "defaultValue": 1000,
14 | "type": "java.lang.Integer"
15 | },
16 | {
17 | "sourceType": "com.pig4cloud.fastdfs.FdfsProperties",
18 | "name": "fdfs.connect-timeout",
19 | "description": "连接超时时间.",
20 | "defaultValue": 1000,
21 | "type": "java.lang.Integer"
22 | },
23 | {
24 | "sourceType": "com.pig4cloud.fastdfs.FdfsProperties",
25 | "name": "fdfs.tracker-list",
26 | "description": "Tracker 地址列表.",
27 | "type": "java.util.List"
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/src/main/resources/META-INF/spring.factories:
--------------------------------------------------------------------------------
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
2 | com.pig4cloud.fastdfs.FdfsAutoConfiguration
--------------------------------------------------------------------------------
/src/main/resources/META-INF/spring.provides:
--------------------------------------------------------------------------------
1 | provides: fastdfs-spring-boot-starter
--------------------------------------------------------------------------------