Tham chiếu API NAS Volume Browser
Cách sử dụng API volume_browser của VergeOS để duyệt nội dung ổ đĩa NAS bằng chương trình, bao gồm quy trình tác vụ không đồng bộ, thăm dò kết quả và khắc phục sự cố thường gặp.
Tổng quan
Tham số volume_browser API cung cấp khả năng duyệt hệ thống tệp cho các volume NAS. Điều này hữu ích cho tự động hóa, tích hợp và xây dựng các công cụ quản lý tệp tùy chỉnh.
Điều kiện tiên quyết
Một dịch vụ NAS đang chạy với ít nhất một volume trực tuyến
Quyền truy cập API với quyền phù hợp
Mã định danh khóa SHA1 của volume (tìm trong URL bảng điều khiển volume hoặc API)
Cách hoạt động
Duyệt một volume là quy trình hai bước:
POST sang
/api/v4/volume_browserđể tạo một job duyệtGET sang
/api/v4/volume_browser/{job_id}?fields=id,status,resultđể thăm dò kết quả
Bước 1: Tạo yêu cầu duyệt
Endpoint
Phần thân yêu cầu
Tham chiếu trường
volume
chuỗi
Có
Khóa volume (mã định danh băm SHA1)
query
chuỗi
Có
Loại thao tác: get-dir, đổi tên, delete, dán
params
đối tượng
Có
Tham số truy vấn (xem bên dưới)
Đối tượng tham số
dir
chuỗi
Đường dẫn thư mục để duyệt. Dùng "" cho thư mục gốc.
limit
số nguyên
Số mục tối đa trả về (ví dụ, 1000)
offset
số nguyên/null
Vị trí offset phân trang, null cho trang đầu tiên
filter.extensions
chuỗi
Lọc theo phần mở rộng tệp (chuỗi rỗng cho tất cả)
volume
chuỗi
Khóa volume (phải khớp với cấp cao nhất volume)
sort
chuỗi
Trường sắp xếp (chuỗi rỗng cho mặc định)
Phản hồi
Tham số $key trường chứa ID job cần cho việc thăm dò.
Bước 2: Thăm dò kết quả
Endpoint
Quan trọng: Yêu cầu trường result
Tham số result trường là KHÔNG được trả về theo mặc định. Bạn phải yêu cầu rõ ràng bằng ?fields=id,status,result. Nếu không có tham số này, bạn sẽ chỉ nhận được thông tin trạng thái.
Nếu không có ?fields=id,status,result:
Với ?fields=id,status,result:
Giá trị trạng thái
running
Job vẫn đang xử lý
complete
Job hoàn tất thành công
error
Job thất bại (kiểm tra result để xem thông báo lỗi)
Chiến lược thăm dò
Định dạng kết quả
Khi status là complete, thì result trường chứa một mảng các mục tệp/thư mục:
Các trường mục
name
chuỗi
Tên tệp hoặc thư mục
n_name
chuỗi
Tên chuẩn hóa (chữ thường)
size
số nguyên
Kích thước tính bằng byte
date
số nguyên
Thời gian sửa đổi (dấu thời gian Unix)
type
chuỗi
"file" hoặc "directory"
Thư mục trống
Đối với thư mục trống, result sẽ là một mảng rỗng:
Ví dụ
cURL
Python
Khắc phục sự cố
Các sự cố thường gặp
Trường result trống hoặc bị thiếu
Bạn phải bao gồm
?fields=id,status,resulttrong yêu cầu GET của bạnNếu không có tham số này, chỉ thông tin trạng thái được trả về
"VM must be in running state to issue a query"
VM dịch vụ NAS không đang chạy
Đi tới NAS > NAS Services và khởi động dịch vụ
"Error getting volumes VM service: No such file or directory"
Dịch vụ NAS của volume không tồn tại hoặc đã bị xóa
Xác minh volume được liên kết với một dịch vụ NAS hợp lệ
"Resource '/v4/volume_browser/' not found"
ID job rỗng trong yêu cầu thăm dò
Đảm bảo bạn trích xuất
$keyđúng cách từ phản hồi POST
Các lỗi thường gặp
Sử dụng
paththay vìdir- Trường được đặt tên làdir, không phảipathGửi params dưới dạng chuỗi JSON - Trường
paramsphải là một đối tượng, không phải chuỗi được mã hóa JSONThiếu các trường params - Tất cả các trường trong đối tượng params đều được mong đợi
Quên
?fields=id,status,result- Nếu không có điều này, sẽ không có dữ liệu tệp nào được trả về
Yêu cầu
VM dịch vụ NAS phải đang chạy để duyệt các volume
Volume phải ở trạng thái trực tuyến (đã được gắn)
Người dùng phải có quyền đọc trên volume
Tài nguyên bổ sung
Phản hồi
Cập nhật lần cuối
Nội dung này có hữu ích không?