FastDFS部署
1.拉取鏡像
docker pull delron/fastdfs
2.構建tracker容器
跟蹤服務器,起到調度作用,這裏tracker服務將會自動映射到宿主機上。注意:docker的-v參數們可以自動的掛載宿主機的文件到容器中去。
docker run -d --network=host --name tracker -v /root:/var/root delron/fastdfs tracke
3. 構建storage容器
存儲服務器,提供容量的備份服務,這裏storage容器依賴tracker服務,傳入你的tracker服務的ip地址,端口默認是22122,地址也就是你的宿主機的ip(若是服務器即是你的公網ip)
docker run -d --network=host --name storage -e TRACKER_SERVER=[你自己的ip]:22122 -v /root:/var/root -e GROUP_NAME=group1 delron/fastdfs storage
若docker容器中啓動啓動容器中存在上述容器,這表示fastdfs容器啓動成功。
4.上傳圖片測試
4.1引入依賴
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.26.1-RELEASE</version>
</dependency>
4.2配置屬性
fdfs:
so-timeout: 2500
connect-timeout: 6000
thumb-image: #縮略圖
width: 60
height: 60
tracker-list: #tracker地址
- [你自己的ip]:22122 #可以配置多個
#自定義屬性,用來把圖片信息傳遞到數據庫或緩存中
air:
upload:
baseUrl:[你自己的ip]:8888
allowTypes:
- image/jpeg
- image/png
- image/bmp
- image/jpg
4.3測試代碼
@RunWith(SpringRunner.class)
@SpringBootTest
public class UploadServiceTest {
@Autowired
private FastFileStorageClient storageClient;
@Autowired
private ThumbImageConfig thumbImageConfig;
@Test
public void testUpload() throws IOException {
File file = new File("C:/Users/13510/Desktop/master.jpg");
//上傳並生成縮略圖
StorePath storePath = this.storageClient.uploadFile(new FileInputStream(file), file.length(), "jpg", null);
//此處的分則是指linux下的分組
//帶分組的路徑
System.out.println(storePath.getFullPath());
//不帶分組的路徑
System.out.println(storePath.getPath());
}