sách gpt4 ai đã đi

Cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-27 22:32:09 36 4
mua khóa gpt4 Nike

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:

Cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS

Mạng 192.168.64.2 là:

Cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS

Mạng 192.168.65.4 là:

Cách sử dụng docker-compose để xây dựng máy chủ tệp fastDFS

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
# thời gian chờ kết nối tính bằng giây
# giá trị mặc định là 30 giây
kết nối_thời_gian_hết=30
# thời gian chờ mạng tính bằng giây
# giá trị mặc định là 30 giây
thời gian chờ mạng = 60
 
# đường dẫn cơ sở để lưu trữ các tệp nhật ký
đường dẫn cơ sở= /fastdfs/khách hàng
 
# tracker_server có thể xảy ra nhiều lần và định dạng tracker_server là
# "host:port", host có thể là tên máy chủ hoặc địa chỉ IP
# Cần phải sửa đổi ip ở đây
máy chủ theo dõi=192.168.64.2:22122
 
#mức nhật ký chuẩn là syslog, không phân biệt chữ hoa chữ thường, danh sách giá trị:
### emerg trong trường hợp khẩn cấp
### báo động
### crit cho chí mạng
### lỗi
### cảnh báo để cảnh báo
### để ý
### thông tin
### gỡ lỗi
log_level=thông tin
 
# nếu sử dụng nhóm kết nối
# giá trị mặc định là false
# kể từ V4.05
sử dụng_nhóm_kết_nối = SAI
 
# các kết nối có thời gian nhàn rỗi vượt quá thời gian này sẽ bị đóng
# đơn vị: giây
# giá trị mặc định là 3600
# kể từ V4.05
thời gian nhàn rỗi tối đa của kết nối = 3600
 
# nếu tải các tham số FastDFS từ máy chủ theo dõi
# kể từ V4.05
# giá trị mặc định là false
tải_fdfs_parameters_from_tracker= SAI
 
# nếu sử dụng ID lưu trữ thay vì địa chỉ IP
# giống như tracker.conf
# chỉ có giá trị khi load_fdfs_parameters_from_tracker là false
# giá trị mặc định là false
# kể từ V4.05
sử dụng_lưu_trữ_id = SAI
 
# chỉ định id lưu trữ tên tệp, có thể sử dụng đường dẫn tương đối hoặc tuyệt đối
# giống như tracker.conf
# chỉ có giá trị khi load_fdfs_parameters_from_tracker là false
# kể từ V4.05
storage_ids_filename = storage_ids.conf
 
#Cài đặt HTTP
http.tracker_server_port=80
 
#sử dụng chỉ thị "#include" để bao gồm các thiết lập HTTP khác
##bao gồm http.conf

./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
#người dùng không có ai;
quy trình_công_nhân 1;
 
#error_log nhật ký/error.log;
#error_log nhật ký/thông báo error.log;
#error_log nhật ký/thông tin error.log;
 
#pid logs/nginx.pid;
 
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 ;
 
     #log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
     # '$status $body_bytes_sent "$http_referer" '
     # '"$http_user_agent" "$http_x_forwarded_for"';
 
     #access_log nhật ký/access.log chính;
 
     gửi tệp trên;
     #tcp_nopush bật;
 
     #keepalive_timeout 0;
     giữ_thời_gian_hết_sống 65;
 
     #gzip bật;
 
     máy chủ {
         nghe 9800;
         tên_máy_chủ localhost;
 
         #charset koi8-r;
 
         #access_log nhật ký/host.access.log chính;
 
         # Sửa đổi một phần
         vị trí / {
             gốc rễ /fastdfs/store_path/dữ liệu ;
             mô-đun ngx_fastdfs;
         }
 
         #error_page 404 /404.html;
 
        
         #
         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.

?
1
2
3
4
5
     com.github.tobato
     fastdfs-client
     1,27 . 2

  .

ứ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: //${fdfs.ip}:9800/

FastDFSConfig.java.

?
1
2
3
4
5
6
7
@Cấu hình
// Nhập thành phần FastDFS-Client
@Nhập khẩu (FdfsClientConfig. lớp học )
//Giải quyết vấn đề đăng ký bean lặp lại trong jmx
@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 ];
         // Thiết lập tải xuống bắt buộc không mở
         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! .

36 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com