Hiện đang làm việc trên một ứng dụng dự án phụ nhỏ sử dụng trình theo dõi tệp để theo dõi các thư mục được chỉ định để thay đổi. Một trong những cách sử dụng phổ biến hơn của ứng dụng là chia sẻ mạng, chẳng hạn như chia sẻ samba. Một ví dụ về một trong những cách sử dụng này sẽ là:
- Một máy khách Windows
- Một máy khách MacOS
- Một máy khách Linux
- Một máy chủ Ubuntu chạy dịch vụ Samba
Khi máy khách Windows thêm tệp vào phần chia sẻ, chỉ máy khách MacOS và máy khách Linux được thông báo. Tuy nhiên, trình theo dõi tệp trên mỗi máy khách (bao gồm cả máy khách Windows) sẽ phát hiện tệp mới. Để có thể ngăn ứng dụng khách Windows ("người tạo" tệp) nhận thông báo, tôi cần ứng dụng để có thể biết ai đã tạo tệp.
// một số mã giả thú vị
func onFileCreated(e) {
nếu (e.File.Creator == GetHostName())
trở lại;
SendToastNotification(e.File);
}
Hiện tại, mỗi khách hàng được đăng nhập vào cùng một người dùng Samba và thuộc tính Chủ sở hữu hiển thị người dùng Samba (như lẽ ra). Tôi không thực sự hiểu hoạt động bên trong của Samba, nhưng đây là một vài cách tiếp cận mà tôi đang nghĩ đến:
- Mỗi khách hàng có người dùng riêng trên máy chủ Samba (sẽ rất tẻ nhạt khi thêm nhiều khách hàng hơn trong tương lai)
- Mỗi khách hàng chịu trách nhiệm biết nếu họ vừa ghi một tệp vào phần chia sẻ Samba (sẽ yêu cầu các đặc quyền cấp cao để truy cập trình xử lý tệp)
- Khi một tệp được tải lên chia sẻ, bằng cách nào đó, máy chủ Samba có thể thêm một thuộc tính tệp tùy chỉnh tùy ý biểu thị tên máy chủ của bất kỳ máy khách nào đã tạo tệp (trường hợp tốt nhất nếu có thể)
Có lẽ có những lựa chọn tốt hơn có sẵn. Rất cám ơn trước.