2018-05-08 16:59:43 +08:00
|
|
|
syntax = "proto3";
|
|
|
|
|
2018-05-10 14:18:02 +08:00
|
|
|
package filer_pb;
|
2018-05-08 16:59:43 +08:00
|
|
|
|
2018-11-26 05:43:26 +08:00
|
|
|
option java_package = "seaweedfs.client";
|
|
|
|
option java_outer_classname = "FilerProto";
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
//////////////////////////////////////////////////
|
|
|
|
|
|
|
|
service SeaweedFiler {
|
|
|
|
|
|
|
|
rpc LookupDirectoryEntry (LookupDirectoryEntryRequest) returns (LookupDirectoryEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2019-12-13 16:22:37 +08:00
|
|
|
rpc ListEntries (ListEntriesRequest) returns (stream ListEntriesResponse) {
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
rpc CreateEntry (CreateEntryRequest) returns (CreateEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-22 18:26:38 +08:00
|
|
|
rpc UpdateEntry (UpdateEntryRequest) returns (UpdateEntryResponse) {
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
rpc DeleteEntry (DeleteEntryRequest) returns (DeleteEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2019-03-31 14:08:29 +08:00
|
|
|
rpc AtomicRenameEntry (AtomicRenameEntryRequest) returns (AtomicRenameEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
rpc AssignVolume (AssignVolumeRequest) returns (AssignVolumeResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
rpc LookupVolume (LookupVolumeRequest) returns (LookupVolumeResponse) {
|
|
|
|
}
|
|
|
|
|
2018-07-20 15:10:01 +08:00
|
|
|
rpc DeleteCollection (DeleteCollectionRequest) returns (DeleteCollectionResponse) {
|
|
|
|
}
|
|
|
|
|
2018-11-23 16:24:51 +08:00
|
|
|
rpc Statistics (StatisticsRequest) returns (StatisticsResponse) {
|
|
|
|
}
|
|
|
|
|
2019-06-23 16:57:35 +08:00
|
|
|
rpc GetFilerConfiguration (GetFilerConfigurationRequest) returns (GetFilerConfigurationResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////
|
|
|
|
|
|
|
|
message LookupDirectoryEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
string name = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message LookupDirectoryEntryResponse {
|
|
|
|
Entry entry = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListEntriesRequest {
|
|
|
|
string directory = 1;
|
2018-07-22 16:14:36 +08:00
|
|
|
string prefix = 2;
|
|
|
|
string startFromFileName = 3;
|
|
|
|
bool inclusiveStartFrom = 4;
|
|
|
|
uint32 limit = 5;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message ListEntriesResponse {
|
2019-12-13 16:22:37 +08:00
|
|
|
Entry entry = 1;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message Entry {
|
|
|
|
string name = 1;
|
|
|
|
bool is_directory = 2;
|
2018-05-16 15:08:44 +08:00
|
|
|
repeated FileChunk chunks = 3;
|
2018-05-08 16:59:43 +08:00
|
|
|
FuseAttributes attributes = 4;
|
2018-09-08 04:12:52 +08:00
|
|
|
map<string, bytes> extended = 5;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2019-04-16 15:44:31 +08:00
|
|
|
message FullEntry {
|
|
|
|
string dir = 1;
|
|
|
|
Entry entry = 2;
|
|
|
|
}
|
|
|
|
|
2018-08-13 16:20:49 +08:00
|
|
|
message EventNotification {
|
2018-09-17 15:27:56 +08:00
|
|
|
Entry old_entry = 1;
|
|
|
|
Entry new_entry = 2;
|
|
|
|
bool delete_chunks = 3;
|
2019-04-16 15:44:31 +08:00
|
|
|
string new_parent_path = 4;
|
2018-08-13 16:20:49 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
message FileChunk {
|
2019-05-17 17:03:23 +08:00
|
|
|
string file_id = 1; // to be deprecated
|
2018-05-16 15:08:44 +08:00
|
|
|
int64 offset = 2;
|
|
|
|
uint64 size = 3;
|
2018-05-16 15:54:44 +08:00
|
|
|
int64 mtime = 4;
|
2018-09-10 07:25:43 +08:00
|
|
|
string e_tag = 5;
|
2019-05-17 17:03:23 +08:00
|
|
|
string source_file_id = 6; // to be deprecated
|
|
|
|
FileId fid = 7;
|
|
|
|
FileId source_fid = 8;
|
|
|
|
}
|
|
|
|
|
|
|
|
message FileId {
|
|
|
|
uint32 volume_id = 1;
|
|
|
|
uint64 file_key = 2;
|
|
|
|
fixed32 cookie = 3;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
message FuseAttributes {
|
|
|
|
uint64 file_size = 1;
|
2018-11-26 05:43:26 +08:00
|
|
|
int64 mtime = 2; // unix time in seconds
|
2018-05-08 16:59:43 +08:00
|
|
|
uint32 file_mode = 3;
|
|
|
|
uint32 uid = 4;
|
|
|
|
uint32 gid = 5;
|
2018-11-26 05:43:26 +08:00
|
|
|
int64 crtime = 6; // unix time in seconds
|
2018-05-31 11:24:57 +08:00
|
|
|
string mime = 7;
|
2018-06-11 07:57:32 +08:00
|
|
|
string replication = 8;
|
|
|
|
string collection = 9;
|
|
|
|
int32 ttl_sec = 10;
|
2018-11-26 05:43:26 +08:00
|
|
|
string user_name = 11; // for hdfs
|
|
|
|
repeated string group_name = 12; // for hdfs
|
2018-12-26 14:45:44 +08:00
|
|
|
string symlink_target = 13;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
message CreateEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
Entry entry = 2;
|
2020-01-23 03:42:40 +08:00
|
|
|
bool o_excl = 3;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message CreateEntryResponse {
|
2020-01-26 01:17:19 +08:00
|
|
|
string error = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
message UpdateEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
Entry entry = 2;
|
|
|
|
}
|
|
|
|
message UpdateEntryResponse {
|
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
message DeleteEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
string name = 2;
|
2018-12-11 23:17:10 +08:00
|
|
|
// bool is_directory = 3;
|
2018-06-07 13:11:01 +08:00
|
|
|
bool is_delete_data = 4;
|
2018-07-19 16:21:44 +08:00
|
|
|
bool is_recursive = 5;
|
2019-09-12 11:26:20 +08:00
|
|
|
bool ignore_recursive_error = 6;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteEntryResponse {
|
|
|
|
}
|
2018-05-16 15:08:44 +08:00
|
|
|
|
2019-03-31 14:08:29 +08:00
|
|
|
message AtomicRenameEntryRequest {
|
|
|
|
string old_directory = 1;
|
|
|
|
string old_name = 2;
|
|
|
|
string new_directory = 3;
|
|
|
|
string new_name = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
message AtomicRenameEntryResponse {
|
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
message AssignVolumeRequest {
|
|
|
|
int32 count = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string replication = 3;
|
2018-06-12 14:13:33 +08:00
|
|
|
int32 ttl_sec = 4;
|
2018-07-15 04:36:28 +08:00
|
|
|
string data_center = 5;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message AssignVolumeResponse {
|
|
|
|
string file_id = 1;
|
|
|
|
string url = 2;
|
|
|
|
string public_url = 3;
|
|
|
|
int32 count = 4;
|
2019-02-15 16:09:19 +08:00
|
|
|
string auth = 5;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
message LookupVolumeRequest {
|
|
|
|
repeated string volume_ids = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
2018-05-24 16:22:37 +08:00
|
|
|
|
|
|
|
message Locations {
|
|
|
|
repeated Location locations = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Location {
|
|
|
|
string url = 1;
|
|
|
|
string public_url = 2;
|
|
|
|
}
|
|
|
|
message LookupVolumeResponse {
|
|
|
|
map<string, Locations> locations_map = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
2018-07-20 15:10:01 +08:00
|
|
|
|
|
|
|
message DeleteCollectionRequest {
|
|
|
|
string collection = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteCollectionResponse {
|
|
|
|
}
|
2018-11-23 16:24:51 +08:00
|
|
|
|
|
|
|
message StatisticsRequest {
|
|
|
|
string replication = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string ttl = 3;
|
|
|
|
}
|
|
|
|
message StatisticsResponse {
|
|
|
|
string replication = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string ttl = 3;
|
|
|
|
uint64 total_size = 4;
|
|
|
|
uint64 used_size = 5;
|
|
|
|
uint64 file_count = 6;
|
|
|
|
}
|
2019-06-23 16:57:35 +08:00
|
|
|
|
|
|
|
message GetFilerConfigurationRequest {
|
|
|
|
}
|
|
|
|
message GetFilerConfigurationResponse {
|
|
|
|
repeated string masters = 1;
|
|
|
|
string replication = 2;
|
|
|
|
string collection = 3;
|
|
|
|
uint32 max_mb = 4;
|
|
|
|
}
|