Tải lên FileZilla không phải là nguyên tử


2

Bây giờ tôi đã sử dụng FileZilla cho các công cụ FTP và trong khi nó hoạt động tốt hầu như mọi lúc, có một lỗ hổng lớn mà tôi đã tìm thấy:

Nếu tôi tải lên một tệp đã thay đổi và một người dùng trang web của tôi tình cờ làm một cái gì đó sử dụng tệp đó (phổ biến hơn nhiều với các tệp bao gồm) ngay tại thời điểm nó tải lên, người dùng sẽ gặp lỗi PHP unexpected $endvì tệp này là được đọc trong khi nó được tải lên một nửa.

Có một tùy chọn nào đó trong FileZilla để khóa một tệp trong khi nó đang được tải lên, do đó làm cho tải lên nguyên tử, hoặc tôi không gặp may và quay lại tìm kiếm một chương trình FTP tốt?


Tại sao không chỉ cho người dùng biết rằng trang web ngừng hoạt động để bảo trì trong vài phút trong khi quá trình tải lên đang được thực hiện? Hoặc bạn có thể thử tải lên các tệp có tên tệp khác nhau và đổi tên chúng sau khi tải lên hoàn tất.
Vinayak

@Vinayak Một vài lý do, chủ yếu là vì chu kỳ phát triển cực kỳ nhanh (ừm, tất cả đều được thực hiện trực tiếp ...) những cập nhật này xảy ra rất thường xuyên. Ngay cả việc thực hiện một hành động phụ nhỏ cũng sẽ nhanh chóng tăng thêm rất nhiều công việc phụ. Ngoài ra, thời gian hoạt động là cực kỳ quan trọng - một lần nữa, nhiều thời gian chết nhỏ sẽ cộng vào thời gian ngừng hoạt động của con người thực sự rất nhanh.
Niet the Dark Tuyệt đối 16/215

Tôi hiểu rồi. Thật không may, tôi đã không tìm thấy bất cứ điều gì trên Internet về các hoạt động FTP nguyên tử. Tuy nhiên, tôi nghi ngờ bạn có thể phát triển một giải pháp nội bộ tùy chỉnh theo dõi thư mục cho nội dung mới hoặc cập nhật và nếu phát hiện thay đổi, thay thế nội dung trực tiếp bằng nội dung được cập nhật cứ sau 15 phút thông qua công việc định kỳ?
Vinayak

@Vinayak Điều đó trông giống như giải pháp khả thi nhất của tôi tại thời điểm này, thật đáng buồn.
Niet the Dark Tuyệt đối 16/215

Tôi mới phát hiện ra điều này nhưng tôi nghĩ SFTP có thể là một giải pháp tốt hơn.
Vinayak

Câu trả lời:


6

Đó là một vấn đề chung. Giao thức FTP không hỗ trợ bất kỳ cơ chế khóa tập tin tiêu chuẩn nào.

Có thể giải quyết rằng bằng cách tải tệp lên tên tệp tạm thời; và đổi tên nó thành tên cuối cùng sau khi tải lên chỉ được thực hiện.

Trong trường hợp giao thức SFTP là một tùy chọn cho bạn, ứng dụng khách SFTP / FTP của WinSCP có thể thực hiện việc này một cách trong suốt cho bất kỳ tải lên nào. Thật không may, nó chỉ hỗ trợ với giao thức SFTP chứ không phải với FTP. Xem Tự động tiếp tục / Chuyển đến tên tệp tạm thời trong tài liệu WinSCP.

(Tôi là tác giả của WinSCP)


Tôi thực sự đang sử dụng SFTP vì vậy đây chắc chắn là một lựa chọn. Mặc dù lúc đầu tôi thấy WinSCP hơi khó sử dụng, tôi đã sử dụng WinSCP tại nơi làm việc được một thời gian và bắt đầu hiểu rõ về nó. Chắc chắn giống như các tùy chọn đồng bộ hóa, vì theo cách đó tôi thậm chí không phải vào cửa sổ để xác nhận tải lên, tôi chỉ cần lưu và thực hiện. Thật tốt khi biết rằng bạn có thứ tên tệp tạm thời tự động đó, đó chính xác là thứ tôi đang tìm kiếm. Vì vậy, tôi sẽ thử WinSCP một lần nữa. Cảm ơn! :)
Niet the Dark Tuyệt đối 16/215
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.