CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN này về cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS được tác giả thu thập và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Bài viết trước đã giới thiệu một ví dụ chi tiết về cách sử dụng docker compose để cài đặt máy chủ tệp FastDfs.
Hôm nay tôi sẽ giới thiệu cách sử dụng docker compose để xây dựng một máy chủ file fastDFS. Chi tiết như sau:
Nền tảng: Mac M1.
Lưu ý: Về Địa chỉ IP.
Về chế độ mạng docker, bài viết trên có đề cập đến chế độ máy chủ docker:
Nếu bạn sử dụng chế độ máy chủ khi khởi động một vùng chứa, vùng chứa sẽ không có Không gian tên mạng độc lập mà sẽ chia sẻ Không gian tên mạng với máy chủ. Container sẽ không ảo hóa card mạng của riêng nó, cấu hình IP của riêng nó, v.v., mà sẽ sử dụng IP và cổng của máy chủ. Tuy nhiên, các khía cạnh khác của vùng chứa, chẳng hạn như hệ thống tệp và danh sách quy trình, vẫn bị cô lập khỏi máy chủ.
Vấn đề là: nếu bạn sử dụng IP và cổng của máy chủ và điền localhost làm IP trong tệp cấu hình, bạn sẽ có thể truy cập vào vùng chứa, nhưng thực tế là không thể. Theo hiểu biết cá nhân của tôi (vui lòng sửa cho tôi nếu có bất kỳ hiểu lầm nào) về cách điền Địa chỉ IP như sau:
Đầu ra của bảng điều khiển khi bắt đầu theo dõi:

Mạng 192.168.64.2 là:

Mạng 192.168.65.4 là:

Thư mục tập tin.
?
1
2
3
4
5
6
7
8
9
|
├── docker-compose.yaml
├── nginx
│ └── nginx.conf
├── lưu trữ
│ └── dữ liệu
└── theo dõi
│ └── conf
│ └── máy khách.conf
└── đường dẫn lưu trữ
|
./docker-compose.yaml .
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
|
phiên bản:
"2"
dịch vụ:
trình theo dõi fastdfs:
tên máy chủ
: fastdfs-tracker
container_name: fastdfs-tracker
hình ảnh: mùa
/fastdfs
:1.2
chế độ mạng:
"chủ nhà"
yêu cầu
: theo dõi
khối lượng:
- .
/theo dõi/dữ liệu
:
/fastdfs/theo dõi/dữ liệu
- .
/theo dõi/conf
:
/etc/fdfs
lưu trữ fastdfs:
tên máy chủ
: lưu trữ fastdfs
container_name: lưu trữ fastdfs
hình ảnh: mùa
/fastdfs
:1.2
chế độ mạng:
"chủ nhà"
khối lượng:
- .
/lưu trữ/dữ liệu
:
/fastdfs/lưu trữ/dữ liệu
- .
/đường_dẫn_cửa_hàng
:
/fastdfs/đường dẫn lưu trữ
môi trường:
- MÁY CHỦ_THEO DÕI=192.168.64.2:22122
yêu cầu
: kho
phụ thuộc vào:
- trình theo dõi fastdfs
fastdfs-nginx:
tên máy chủ
: fastdfs-nginx
container_name: fastdfs-nginx
hình ảnh: mùa
/fastdfs
:1.2
chế độ mạng:
"chủ nhà"
khối lượng:
- .
/nginx/nginx
.conf:
/etc/nginx/conf/nginx
.conf
- .
/đường_dẫn_cửa_hàng
:
/fastdfs/đường dẫn lưu trữ
môi trường:
- MÁY CHỦ_THEO DÕI=192.168.64.2:22122
yêu cầu
: nginx
|
./tracker/conf/client.conf .
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
kết nối_thời_gian_hết=30
thời gian chờ mạng = 60
đường dẫn cơ sở=
/fastdfs/khách hàng
máy chủ theo dõi=192.168.64.2:22122
log_level=thông tin
sử dụng_nhóm_kết_nối =
SAI
thời gian nhàn rỗi tối đa của kết nối = 3600
tải_fdfs_parameters_from_tracker=
SAI
sử dụng_lưu_trữ_id =
SAI
storage_ids_filename = storage_ids.conf
http.tracker_server_port=80
|
./nginx/nginx.conf .
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
quy trình_công_nhân 1;
sự kiện {
kết nối_công_nhân 1024;
}
http {
bao gồm mime.types;
ứng dụng default_type
/octet-luồng
;
gửi tệp trên;
giữ_thời_gian_hết_sống 65;
máy chủ {
nghe 9800;
tên_máy_chủ localhost;
vị trí / {
gốc rễ
/fastdfs/store_path/dữ liệu
;
mô-đun ngx_fastdfs;
}
lỗi_trang 500 502 503 504
/50 lần
.html;
vị trí =
/50 lần
.html {
gốc html;
}
}
}
|
SpringBoot tích hợp fastDFS.
Thêm phụ thuộc.
.
ứng dụng.yaml .
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# Cấu hình hệ thống tập tin phân tán
fdf:
#Thay đổi theo IP của bạn
địa chỉ IP:
192.168
.
64,2
#hết thời gian kết nối ổ cắm
thời gian chờ:
1500
kết nốiThời gian chờ:
600
#Hỗ trợ nhiều
Danh sách theo dõi:
- ${fdfs.ip}:
22122
# IP và cổng của nginx trong fastDFS
# IDEA nhắc nhở sử dụng https,
# nginx cấu hình SSL vui lòng chuyển đến:
URL máy chủ web: http:
|
FastDFSConfig.java.
?
1
2
3
4
5
6
7
|
@Cấu hình
@Nhập khẩu
(FdfsClientConfig.
lớp học
)
@EnableMBeanXuất
(đăng ký = RegistrationPolicy.IGNORE_EXISTING)
công cộng
khía cạnh FastDFSConfig {
}
|
FastDFSUtil.java.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
@Thành phần
công cộng
lớp học
Tiện ích FastDFS
@Tài nguyên
riêng tư
FastFileStorageClient là gì?
@Tài nguyên
riêng tư
Máy chủ Web Fdfs Máy chủ Web Fdfs;
công cộng
Chuỗi uploadFile(tệp MultipartFile)
ném
Ngoại lệ IO {
StorePath storePath = fastFileStorageClient.uploadFile(file.getInputStream(), file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),
vô giá trị
);
Chuỗi fullPath = storePath.getFullPath();
lấyResAccessUrl(đường dẫn đầy đủ);
trở lại
đường dẫn đầy đủ;
}
công cộng
Chuỗi uploadFile(Tệp file) {
thử
{
FileInputStream đầu vàoStream =
mới
FileInputStream(tệp);
StorePath storePath = fastFileStorageClient.uploadFile(inputStream, file.length(), FilenameUtils.getExtension(file.getName()),
vô giá trị
);
trở lại
storePath.getFullPath();
}
nắm lấy
(Ngoại lệ e) {
e.printStackTrace();
trở lại
vô giá trị
;
}
}
công cộng
byte
[] downloadFile(Chuỗi filePath) {
StorePath storePath = StorePath.parseFromUrl(filePath);
trở lại
fastFileStorageClient.downloadFile(storePath.getGroup(), storePath.getPath(),
mới
Tải xuốngByteArray());
}
công cộng
Boolean deleteFile(String filePath) {
nếu như
(StringUtils.isEmpty(đường dẫn tệp)) {
trở lại
SAI
;
}
thử
{
StorePath storePath = StorePath.parseFromUrl(filePath);
fastFileStorageClient.deleteFile(storePath.getGroup(), storePath.getPath());
}
nắm lấy
(Ngoại lệ e) {
e.printStackTrace();
trở lại
SAI
;
}
trở lại
ĐÚNG VẬY
;
}
/**
* Đóng gói địa chỉ URL đầy đủ của tập tin
*
* @param đường dẫn
* @trở lại
*/
công cộng
Chuỗi getResAccessUrl(Đường dẫn chuỗi) {
trở lại
fdfsWebServer.getWebServerUrl() + đường dẫn;
}
}
|
FastDFSController.java.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
@Bộ điều khiển nghỉ ngơi
@Yêu cầu lập bản đồ
(
"/fast-dfs"
)
công cộng
lớp học
Bộ điều khiển FastDFS {
/**
* @param tập tin
* @trở lại
* @throws IOException
*/
@PostMapping
(
""
)
@Giao dịch
công cộng
vô hiệu
uploadFile(tệp MultipartFile, String cuisineId)
ném
Ngoại lệ IO {
Chuỗi s = fastDfsUtil.uploadFile(tệp);
Chuỗi resAccessUrl = fastDfsUtil.getResAccessUrl(s);
}
/**
* @param phản hồi
* @throws IOException
*/
@GetMapping
(
""
)
công cộng
vô hiệu
downloadFile(String filePath, phản hồi HttpServletResponse)
ném
Ngoại lệ IO {
byte
[] byte = fastDfsUtil.downloadFile(filePath);
Chuỗi[] chia = filePath.split(
"/"
);
Chuỗi fileName = split[split.length -
1
];
phản hồi.setContentType(
"ứng dụng/buộc-tải xuống"
);
fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8);
phản hồi.setHeader(
"Nội dung-Bố trí"
,
"tệp đính kèm;tên tệp="
+ Tên tệp);
IOUtils.write(byte, response.getOutputStream());
}
/**
* Phát video trực tuyến, bạn chỉ có thể xem từ đầu đến cuối, bạn không thể nhấp thủ công để xem nội dung bạn đã xem
* @param đường dẫn tệp
* @param phản hồi
* @throws IOException
*/
@GetMapping
(
"/chơi"
)
công cộng
vô hiệu
streamMedia(String filePath, phản hồi HttpServletResponse)
ném
Ngoại lệ IO {
byte
[] byte = fastDfsUtil.downloadFile(filePath);
IOUtils. sao chép(
mới
ByteArrayInputStream(byte), response.getOutputStream());
phản hồi.flushBuffer();
}
}
|
Đây là phần cuối của bài viết này về cách sử dụng docker compose để xây dựng máy chủ tệp fastDFS. Để biết thêm thông tin về cách sử dụng docker compose để xây dựng fastDFS, vui lòng tìm kiếm các bài viết trước của tôi hoặc tiếp tục duyệt các bài viết liên quan sau. Tôi hy vọng bạn sẽ ủng hộ tôi trong tương lai! .
Liên kết gốc: https://www.cnblogs.com/edoclin/p/14648832.html.
Cuối cùng, bài viết này về cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS kết thúc tại đây. Nếu bạn muốn biết thêm về cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!