mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
89 lines
1.9 KiB
Protocol Buffer
89 lines
1.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package file;
|
|
|
|
option go_package = "./proto;file";
|
|
|
|
service File {
|
|
rpc Read(ReadRequest) returns (ReadResponse) {}
|
|
rpc List(ListRequest) returns (ListResponse) {}
|
|
rpc Save(SaveRequest) returns (SaveResponse) {}
|
|
rpc Delete(DeleteRequest) returns (DeleteResponse) {}
|
|
rpc BatchSave(BatchSaveRequest) returns (BatchSaveResponse) {}
|
|
}
|
|
|
|
message Record {
|
|
// A custom project to group files
|
|
// eg. file-of-mywebsite.com
|
|
string project = 1;
|
|
// Path to file or folder eg. '/documents/text-files/file.txt'.
|
|
string path = 2;
|
|
// Is it a directory (true) or a file (false)
|
|
bool is_directory = 3;
|
|
// File contents. Empty for directories.
|
|
string data = 4;
|
|
// Time the file was created, number of seconds since Unix epoch
|
|
int64 created = 5;
|
|
// Time the file was updated, number of seconds since Unix epoch
|
|
int64 updated = 6;
|
|
// Owner of the file e.g alice
|
|
string owner = 7;
|
|
// Any other associated metadata
|
|
map<string,string> metadata = 8;
|
|
}
|
|
|
|
// Batch save multiple files in one call
|
|
message BatchSaveRequest {
|
|
repeated Record files = 1;
|
|
}
|
|
|
|
message BatchSaveResponse {
|
|
}
|
|
|
|
// Read a file by path
|
|
message ReadRequest {
|
|
// Project name
|
|
string project = 1;
|
|
// Path to the file
|
|
string path = 2;
|
|
}
|
|
|
|
message ReadResponse {
|
|
// Returns the file
|
|
Record file = 1;
|
|
}
|
|
|
|
// Save a file
|
|
message SaveRequest {
|
|
Record file = 1;
|
|
}
|
|
|
|
message SaveResponse {
|
|
}
|
|
|
|
// List file by their project and optionally a path.
|
|
message ListRequest {
|
|
// Project, required for listing.
|
|
string project = 1;
|
|
// Defaults to '/', ie. lists all files in a project.
|
|
// Supply path if of a folder if you want to list
|
|
// files inside that folder
|
|
// eg. '/docs'
|
|
string path = 2;
|
|
}
|
|
|
|
message ListResponse {
|
|
repeated Record files = 1;
|
|
}
|
|
|
|
// Delete a file by project name/path
|
|
message DeleteRequest {
|
|
// The project name
|
|
string project = 1;
|
|
// Path to the file
|
|
string path = 2;
|
|
}
|
|
|
|
message DeleteResponse {}
|
|
|