- VisualStudio2022
- pprof-Hướng dẫn sử dụng nó trong bản mạng trực tiếp
- Triển khai C# các loại hộp chọn nhiều màu lựa chọn thả xuống, cây lựa chọn nhiều màu lựa chọn thả xuống và các nút tối đa
- [Ghi chú học tập] Cơ sở dữ liệu cấu trúc: cat tree
Thì công việc tự động
MinIO là một đối tượng lưu trữ dịch vụ dựa trên giấy phép Apache mở nguồn giao thức v2.0. lưu trữ đám mây Amazon S3 và rất phù hợp để lưu trữ dung lượng lớn dữ liệu cấu trúc phi cấu trúc, như hình ảnh, video, nhật ký tệp, sao lưu dữ liệu và hình ảnh chứa/máy ảo, vv và đối tượng tệp có thể ở bất kỳ lúc nào bất kỳ kích thước nào, từ một số khác nhau, từ kb đến tối đa 5T.
MinIO là một dịch vụ rất nhẹ nhàng, có thể dễ dàng tích hợp các ứng dụng khác như NodeJS, Redis hoặc MySQL.
Trang web tiếng Trung của MiniIO: https://www.minio.org.cn/docs/minio/linux/Operations/installation.html.
Tải xuống MinIO máy chủ.
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Thêm quyền thực thi vào MinIO phân tách nhị phân.
chmod +x minio
Tạo một thư mục ở vị trí thích hợp để lưu trữ tệp dữ liệu mà MinIO có thể tải lên.
# Tạo minio-data thư mục trong gốc thư mục để lưu trữ tệp dữ liệu được tải lên bởi MinIO mkdir ~/minio-data
Cài đặt MinIO.
sudo mv minio /usr/local/bin/
Sử dụng liên kết môi trường biến để làm tài khoản đăng nhập và mật khẩu cho bảng điều khiển MinIO.
Chỉnh sửa tệp .bashrc, sử dụng nano tại đây.
nano ~/.bashrc
Thêm môi trường biến vào tệp cuối cùng.
xuất MINIO_ROOT_USER=người dùng root mới xuất MINIO_ROOT_PASSWORD=mật khẩu newroot
Tải lại .bashrc để thay đổi hiệu ứng.
nguồn ~/.bashrc
Bắt đầu MinIO.
máy chủ minio nohup --secure ~/minio-data
Nohup được sử dụng ở đây để đảm bảo MinIO sẽ không dừng sau khi phiên đóng. Bạn cũng có thể sử dụng các công nghệ phiên như màn hình hoặc khởi động MinIO dưới dạng dịch vụ. Không có nhiều giới thiệu ở đây.
Sau khi khởi động MinIO, hãy truy cập bảng điều khiển web MinIO bằng cách truy cập vào cổng ip+9000 trong trình duyệt. Nếu không thể truy cập được, trước tiên hãy kiểm tra xem hai cổng của MinIO có mở không. Một là cổng WebUI của MinIO, cổng còn lại là cổng API của MinIO, được cố định ở mức 9000.
Truy cập ip+9000 trong trình duyệt sẽ thực sự chuyển sang cổng WebUI. Nhưng khi sử dụng API để upload và download file thì cần sử dụng cổng 9000.
Trước đó, bạn cần chuẩn bị một tên miền đã đăng ký và phân giải nó đến máy chủ hiện tại.
Các bước thực hiện như sau:
Cài đặt Nginx trước (nếu bạn chưa có).
cập nhật sudo apt-get sudo apt-get cài đặt nginx
Thông thường, không nên thay đổi trực tiếp tệp cấu hình chính nginx nằm trong /etc/nginx/nginx.conf. Sử dụng phương pháp cấu hình sau:
Tạo tệp cấu hình mới trong /etc/nginx/sites-available/, bạn có thể sử dụng trực tiếp tên miền và tên tệp được cấu hình hiện tại. Vì tôi cần định cấu hình nhiều tên miền ở đây nên tên tệp là minio.conf.
cd /etc/nginx/sites-available/ touch minio.conf
Viết tập tin cấu hình.
nanominio.conf
Ví dụ về tập tin cấu hình.
# Máy chủ cấu hình WebUI { listen 80; server_name yourdomain.com; # Thay thế bằng vị trí tên miền của bạn / { proxy_pass http://localhost:44366; # Thay thế bằng cổng thực tế proxy_set_header Host $host; ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; X-Forwarded-Proto $scheme; } } # Máy chủ cấu hình API { listen 80; server_name api.yourdomain.com; # Thay thế bằng vị trí tên miền API của bạn / { proxy_pass http://localhost:9000; proxy_set_header Máy chủ $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
Kích hoạt hồ sơ mới được tạo. Liên kết /etc/nginx/sites-available/minio.conf với thư mục /etc/nginx/sites-enabled/.
sudo ln -s /etc/nginx/sites-available/minio.conf /etc/nginx/sites-enabled/
Bạn có thể kiểm tra nginx trước để đảm bảo không có lỗi cú pháp.
nginx -t
Khởi động lại dịch vụ nginx.
sudo systemctl khởi động lại nginx
Tại thời điểm này, bạn sẽ có thể truy cập bảng điều khiển Minio bằng tên miền trên trình duyệt cục bộ của mình.
io.minio minio 8.4.3
Sau đó tạo một lớp dịch vụ để triển khai tải lên và tải xuống tệp.
nhập io.minio.*; nhập io.minio.messages.Item; nhập java.io.InputStream; nhập java.security.SecureRandom; nhập java.util.Base64; nhập @Service lớp công khai MinIOService { riêng tư cuối cùng MinioClient minioClient; public MinIOService() { try { // Thay đổi cấu hình của riêng bạn, bạn nên ghi nó vào tệp cấu hình this.minioClient = MinioClient.builder() .endpoint("http://localhost:9000") .credentials("minioadmin", "minioadmin") .build() } Catch (MinioException e) { ném RuntimeException mới ("Không thể tạo MinioClient" ", e); } } public String uploadFile(String BuckName, String objectName, luồng inputStream, kích thước dài) { try { minioClient.putObject(bucketName, objectName, luồng, size); return "Tệp được tải lên thành công." } Catch (MinioException | IOException e) { Throw New RuntimeException("Tải lên tệp không thành công.", e); Chuỗi xôName, Chuỗi đối tượng) { thử { return minioClient.getObject(bucketName, objectName } Catch (MinioException | IOException e) { ném RuntimeException mới("Tải tập tin không thành công.", e } } });
Và viết Controller tương ứng cho nó.
nhập org.springframework.beans.factory.annotation.Autowired; nhập org.springframework.core.io.InputStreamResource; nhập org.springframework.core.io.Resource; nhập org.springframework.http.HttpHeaders; .ResponseEntity nhập org.springframework.web.bind.annotation.*; org.springframework.web.multipart.MultipartFile; nhập java.io.IOException; nhập java.io.InputStream; @RestController @RequestMapping("/minio") lớp công khai MinIOController { @Autowired Private MinIOService minIOService; ") public String uploadFile(@RequestParam("file") MultipartFile file) { String BuckName = "my-bucket"; Chuỗi objectName = UUID.randomUUID().toString(); thử (InputStreamstream = file.getInputStream()) { return miniIOService.uploadFile(bucketName, objectName, stream, file.getSize()); Catch (IOException e) { return "Không thể tải tệp lên." } } @GetMapping("/download/{objectName}") public ResponseEntity downloadFile(@PathVariable String objectName) { Chuỗi BucketName = "my-bucket"; luồng inputStream = minIOService.downloadFile(bucketName, objectName); trả về ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename); =\"" + objectName + "\"") .body(mới inputStreamResource(stream)); } }
cài đặt pip minio
Sau đó tạo Flask để tích hợp MinIO.
from jar import Flask, request, send_file, jsonify from minio import Minio from minio.error import S3Error app = Flask(__name__) # Cấu hình MinIO minio_client = Minio( # Thay đổi thành "localhost:9000", access_key="minioadmin" của riêng bạn secret_key="minioadmin", safe=False ) @app.route('/upload', Method=['POST']) def upload_file(): file = request.files['file'] xô_name = 'my-bucket' object_name = file.filename thử: với open('/tmp/' + object_name, 'wb') là f: f.write( file.read()) minio_client.fput_object(bucket_name, object_name, '/tmp/' + object_name) return jsonify({'message': 'File đã tải lên thành công'}), 200 ngoại trừ S3Error dưới dạng exec: return jsonify({'error': str(exc)}), 500 @app.route('/download/', Method=['GET']) def download_file(object_name): xô_name = 'my-bucket' thử: reply = minio_client.get_object(bucket_name, object_name) return send_file( reply.stream, as_attachment=True, attachment_filename=object_name, mimetype=response.headers['content-type'] ) ngoại trừ S3Error as exec: return jsonify({'error': str(exc)}), 500 if __name__ == '__main__': app.run(debug=True)
Cuối cùng, bài viết về xây dựng máy chủ MinIO trên Ubuntu kết thúc tại đây. Nếu bạn muốn biết thêm về cách xây dựng máy chủ MinIO trên Ubuntu, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ tôi trong tương lai. blog! .
Có ai có thể giải thích sự khác biệt giữa Server.MapPath(".."), Server.MapPath("~"), Server.MapPath(@"\") và Server.MapPath("/") không? câu trả lời hay nhất
Tôi không biết tại sao chúng ta lại sử dụng Server.UrlEncode() & Server.UrlDecode()? !Trong QueryString chúng ta thấy mọi thứ trong URL vậy tại sao chúng ta phải mã hóa chúng
Tôi đã cài đặt chứng chỉ ssl trên một trong các tên miền của mình thông qua WHM. Trang web đang hoạt động với https://xyz.com Nhưng nó không hoạt động với https://www.xyz.com. Tôi đã kiểm tra chứng chỉ và nó cũng hoạt động với www.
Tôi đã sử dụng WMI để phát hiện sự hiện diện của phần mềm chống vi-rút trên HĐH và nó hoạt động tốt và hiển thị cho tôi thông tin chống vi-rút bằng cách sử dụng không gian tên như tên và id phiên bản trên win xp và window7:\root\SecurityC
Chúng tôi có phiên bản Hive 0.10 và chúng tôi muốn biết liệu mình nên sử dụng Hive Server 1 hay Hive Server2. Một vấn đề khác là kết nối với máy chủ Hive chạy trên cổng 10000, sử dụng bên thứ 3
Tôi muốn thiết lập máy chủ HTTPS bằng C++ bằng API Windows Server, tôi đã sử dụng mã mẫu và nó hoạt động tốt trên HTTP nhưng tôi không thể làm cho nó hoạt động trên HTTPS. (Tôi không muốn khách hàng S
Tôi đã viết một lớp rất cơ bản để gửi email. Tôi đã thử nghiệm nó với máy chủ smtp và nó hoạt động tốt, nhưng khi tôi thử sử dụng máy chủ trao đổi của công ty mình, nó đưa ra ngoại lệ: máy chủ SMTP yêu cầu kết nối an toàn hoặc máy khách không được xác thực. Quần áo
Ứng dụng của tôi chứa máy chủ DataSnap REST "cổng" là điểm truy cập đầu tiên cho tất cả máy khách. Tùy thuộc vào tên người dùng được khách hàng chuyển trong yêu cầu (Xác thực cơ bản), yêu cầu cần được chuyển hướng đến một máy chủ DataSnap khác. câu hỏi của tôi
Tôi có máy chủ Tomcat và máy chủ Glassfish4. Servlet của tôi khởi động tốt trên máy chủ Tomcat nhưng mang lại cho tôi "Trạng thái HTTP 4" trên máy chủ Glassfish4
Tôi đã tạo một máy chủ Ubuntu trên vmware. Tôi sử dụng nó như một máy chủ tập tin. Nếu tôi kết nối thông qua máy chủ của máy ảo, tôi có thể truy cập nó. Tôi không thể thực hiện việc này từ một máy tính khác trên cùng mạng. Cảm ơn trước! Câu trả lời hay nhất trước tiên!
Làm cách nào để khởi động lại máy chủ Rails? Tôi đã khởi động Rails bằng server -d để máy chủ được tách ra và cách duy nhất tôi biết là thực hiện ps helper |
Tôi thực sự đang cố gắng tìm cách tốt nhất để viết một máy chủ XMPP đơn giản hoặc tìm một máy chủ có dung lượng rất nhỏ. Tôi chỉ quan tâm đến chức năng cốt lõi của XMPP (trạng thái, nhắn tin, nhắn tin nhóm). Hiện tại vẫn đang học giao thức XMPP (proto
Tôi thực sự đang cố gắng tìm cách tốt nhất để viết một máy chủ XMPP đơn giản hoặc tìm một máy chủ có dung lượng rất nhỏ. Tôi chỉ quan tâm đến các chức năng cốt lõi của XMPP (thống kê, tin nhắn, tin nhắn nhóm). Hiện tại mình cũng đang học giao thức XMPP nên
Chúng tôi đang cố gắng truy cập dịch vụ web SOAP 1.1 từ bộ điều hợp Java JAX-RS. được tạo từ WSDL. Nhưng khi giải mã SOAP không thành công, chúng tôi gặp lỗi sau: ... C
Hiện tại, tôi và nhiều người khác đang sử dụng máy chủ Python HTTP trên nhiều nền tảng (Windows, OS X và có thể cả Linux). sử dụng HTTP Python máy chủ để thử nghiệm trò chơi JavaScript
Tôi có một chương trình chạy liên tục trên máy chủ (C#/.NET 2.0 trên Linux với mono) và tôi muốn kết nối với chương trình đó từ đó tập lệnh PHP để hiển thị trạng thái thông tin trên trang web. có Flash
Vì vậy, tôi có một ứng dụng khách một trang. Luồng thông thường: Ứng dụng -> Máy chủ OAuth2 -> Ứng dụng Chúng tôi có máy chủ OAuth2 của riêng mình để mọi người có thể đăng nhập vào ứng dụng và nhận access_t được liên kết với thực thể người dùng
Chúng tôi vừa nâng cấp thử nghiệm web máy chủ của mình từ Server 2008 lên Server 2012 R2. chúng tôi đưa trang web lên máy chủ thì không thành công.
Ở Catalina, lỗi là - * NGHIÊM TRỌNG: Không thể xử lý Jar mục nhập [
Khi họ truy cập vào ứng dụng máy chủ (Apache tomcat), nó sẽ tạo một luồng để xử lý yêu cầu của chúng tôi và kết nối với tomcat, thiết lập kết nối, tomcat tạo một luồng khác để xử lý yêu cầu và chuyển nó đến kết nối, kết nối luồng will move it
Tôi là một lập trình viên xuất sắc, rất xuất sắc!