Remove 'default' as initial bucket name for Sia #54
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
This commit is contained in:
@@ -4,13 +4,17 @@
|
|||||||
|
|
||||||
### Issues
|
### Issues
|
||||||
|
|
||||||
|
* \#54 Remove 'default' as initial bucket name for Sia
|
||||||
|
|
||||||
### Changes from v2.0.6-release
|
### Changes from v2.0.6-release
|
||||||
|
|
||||||
* Fixed `.` and `..` incorrectly being reported as files in remote Linux mounts
|
* Fixed `.` and `..` incorrectly being reported as files in remote Linux mounts
|
||||||
|
|
||||||
## v2.0.6-release
|
## v2.0.6-release
|
||||||
|
|
||||||
|
<!-- markdownlint-disable-next-line -->
|
||||||
### Issues
|
### Issues
|
||||||
|
|
||||||
* \#42 [bug] Remote mount directory listing on Windows connected to Linux is failing
|
* \#42 [bug] Remote mount directory listing on Windows connected to Linux is failing
|
||||||
* \#43 [bug] Directories are not importing properly for Sia
|
* \#43 [bug] Directories are not importing properly for Sia
|
||||||
* \#44 [bug] Windows-to-Linux remote mount ignores `CREATE_NEW`
|
* \#44 [bug] Windows-to-Linux remote mount ignores `CREATE_NEW`
|
||||||
|
22
README.md
22
README.md
@@ -89,14 +89,12 @@ username and password.
|
|||||||
* `--name, -na [name]`
|
* `--name, -na [name]`
|
||||||
* Identifies a unique configuration name to support multiple mounts.
|
* Identifies a unique configuration name to support multiple mounts.
|
||||||
* The `--name` option can be set to any valid value allowed as a file name for your filesystem.
|
* The `--name` option can be set to any valid value allowed as a file name for your filesystem.
|
||||||
* For Sia, the bucket name will be set to the same value if it is empty in the configuration file.
|
* The `--name` option is required
|
||||||
* If the `--name` option is not specified, `default` will be used.
|
|
||||||
* For S3, the `--name` option is required and does not affect the bucket name.
|
|
||||||
|
|
||||||
* `-dc`
|
* `-dc`
|
||||||
* Display mount configuration
|
* Display mount configuration
|
||||||
* For Sia, `--name` is optional
|
* For Sia, the `--name` option is required
|
||||||
* For S3, the `-s3` option is required along with `--name`
|
* For S3, the `-s3` and `--name` options are required
|
||||||
|
|
||||||
### Sia
|
### Sia
|
||||||
|
|
||||||
@@ -104,12 +102,6 @@ username and password.
|
|||||||
|
|
||||||
* Required steps:
|
* Required steps:
|
||||||
* Set the appropriate bucket name and `renterd` API password in `repertory` configuration:
|
* Set the appropriate bucket name and `renterd` API password in `repertory` configuration:
|
||||||
* To use `default` as the bucket name and configuration name, you only need to set the `renterd` API password:
|
|
||||||
* `repertory -set HostConfig.ApiPassword '<my password>'`
|
|
||||||
* To specify a different bucket name while using `default` as the configuration name:
|
|
||||||
* `repertory -set HostConfig.ApiPassword '<my password>'`
|
|
||||||
* `repertory -set SiaConfig.Bucket '<my bucket>'`
|
|
||||||
* For all other configurations:
|
|
||||||
* `repertory --name '<my config name>' -set HostConfig.ApiPassword '<my password>'`
|
* `repertory --name '<my config name>' -set HostConfig.ApiPassword '<my password>'`
|
||||||
* `repertory --name '<my config name>' -set SiaConfig.Bucket '<my bucket name>'`
|
* `repertory --name '<my config name>' -set SiaConfig.Bucket '<my bucket name>'`
|
||||||
|
|
||||||
@@ -131,7 +123,7 @@ username and password.
|
|||||||
* `repertory -dc`
|
* `repertory -dc`
|
||||||
* `repertory --name '<my config name>' -dc`
|
* `repertory --name '<my config name>' -dc`
|
||||||
* Example:
|
* Example:
|
||||||
* `repertory --name default -dc`
|
* `repertory --name my_bucket -dc`
|
||||||
|
|
||||||
#### Sia Mounting
|
#### Sia Mounting
|
||||||
|
|
||||||
@@ -139,13 +131,13 @@ username and password.
|
|||||||
* `repertory /mnt/location`
|
* `repertory /mnt/location`
|
||||||
* `repertory --name '<my config name>' /mnt/location`
|
* `repertory --name '<my config name>' /mnt/location`
|
||||||
* Example:
|
* Example:
|
||||||
* `repertory --name default /mnt/location`
|
* `repertory --name my_bucket /mnt/location`
|
||||||
|
|
||||||
* Windows:
|
* Windows:
|
||||||
* `repertory t:`
|
* `repertory t:`
|
||||||
* `repertory --name '<my config name>' t:`
|
* `repertory --name '<my config name>' t:`
|
||||||
* Example:
|
* Example:
|
||||||
* `repertory --name default t:`
|
* `repertory --name my_bucket t:`
|
||||||
|
|
||||||
#### Sia Configuration File
|
#### Sia Configuration File
|
||||||
|
|
||||||
@@ -187,7 +179,7 @@ username and password.
|
|||||||
"RetryReadCount": 6,
|
"RetryReadCount": 6,
|
||||||
"RingBufferFileSize": 512,
|
"RingBufferFileSize": 512,
|
||||||
"SiaConfig": {
|
"SiaConfig": {
|
||||||
"Bucket": "default"
|
"Bucket": "my_bucket"
|
||||||
},
|
},
|
||||||
"TaskWaitMs": 100,
|
"TaskWaitMs": 100,
|
||||||
"Version": 1
|
"Version": 1
|
||||||
|
@@ -41,13 +41,6 @@
|
|||||||
#include "utils/utils.hpp"
|
#include "utils/utils.hpp"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
[[nodiscard]] auto get_bucket(const repertory::sia_config &cfg) -> std::string {
|
|
||||||
if (cfg.bucket.empty()) {
|
|
||||||
return "default";
|
|
||||||
}
|
|
||||||
return cfg.bucket;
|
|
||||||
}
|
|
||||||
|
|
||||||
[[nodiscard]] auto get_last_modified(const nlohmann::json &obj)
|
[[nodiscard]] auto get_last_modified(const nlohmann::json &obj)
|
||||||
-> std::uint64_t {
|
-> std::uint64_t {
|
||||||
try {
|
try {
|
||||||
@@ -119,7 +112,7 @@ auto sia_provider::create_directory_impl(const std::string &api_path,
|
|||||||
curl::requests::http_put_file put_file{};
|
curl::requests::http_put_file put_file{};
|
||||||
put_file.allow_timeout = true;
|
put_file.allow_timeout = true;
|
||||||
put_file.path = "/api/worker/object" + api_path + "/";
|
put_file.path = "/api/worker/object" + api_path + "/";
|
||||||
put_file.query["bucket"] = get_bucket(get_sia_config());
|
put_file.query["bucket"] = get_sia_config().bucket;
|
||||||
|
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
put_file.response_handler = [&error_data](auto &&data, long response_code) {
|
put_file.response_handler = [&error_data](auto &&data, long response_code) {
|
||||||
@@ -363,7 +356,7 @@ auto sia_provider::get_object_info(const std::string &api_path,
|
|||||||
curl::requests::http_get get{};
|
curl::requests::http_get get{};
|
||||||
get.allow_timeout = true;
|
get.allow_timeout = true;
|
||||||
get.path = "/api/bus/object" + api_path;
|
get.path = "/api/bus/object" + api_path;
|
||||||
get.query["bucket"] = get_bucket(get_sia_config());
|
get.query["bucket"] = get_sia_config().bucket;
|
||||||
get.query["onlymetadata"] = "true";
|
get.query["onlymetadata"] = "true";
|
||||||
|
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
@@ -413,7 +406,7 @@ auto sia_provider::get_object_list(const std::string &api_path,
|
|||||||
curl::requests::http_get get{};
|
curl::requests::http_get get{};
|
||||||
get.allow_timeout = true;
|
get.allow_timeout = true;
|
||||||
get.path = "/api/bus/objects" + api_path + "/";
|
get.path = "/api/bus/objects" + api_path + "/";
|
||||||
get.query["bucket"] = get_bucket(get_sia_config());
|
get.query["bucket"] = get_sia_config().bucket;
|
||||||
if (marker.has_value()) {
|
if (marker.has_value()) {
|
||||||
get.query["limit"] = "1000";
|
get.query["limit"] = "1000";
|
||||||
get.query["marker"] = marker.value();
|
get.query["marker"] = marker.value();
|
||||||
@@ -464,7 +457,7 @@ auto sia_provider::get_total_drive_space() const -> std::uint64_t {
|
|||||||
curl::requests::http_get get{};
|
curl::requests::http_get get{};
|
||||||
get.allow_timeout = true;
|
get.allow_timeout = true;
|
||||||
get.path = "/api/bus/autopilot";
|
get.path = "/api/bus/autopilot";
|
||||||
get.query["bucket"] = get_bucket(get_sia_config());
|
get.query["bucket"] = get_sia_config().bucket;
|
||||||
|
|
||||||
json config_data;
|
json config_data;
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
@@ -581,7 +574,7 @@ auto sia_provider::is_online() const -> bool {
|
|||||||
curl::requests::http_get get{};
|
curl::requests::http_get get{};
|
||||||
get.allow_timeout = true;
|
get.allow_timeout = true;
|
||||||
get.path = "/api/bus/consensus/state";
|
get.path = "/api/bus/consensus/state";
|
||||||
get.query["bucket"] = get_bucket(get_sia_config());
|
get.query["bucket"] = get_sia_config().bucket;
|
||||||
|
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
json state_data;
|
json state_data;
|
||||||
@@ -675,7 +668,7 @@ auto sia_provider::read_file_bytes(const std::string &api_path,
|
|||||||
try {
|
try {
|
||||||
curl::requests::http_get get{};
|
curl::requests::http_get get{};
|
||||||
get.path = "/api/worker/object" + api_path;
|
get.path = "/api/worker/object" + api_path;
|
||||||
get.query["bucket"] = get_bucket(get_sia_config());
|
get.query["bucket"] = get_sia_config().bucket;
|
||||||
get.headers["accept"] = "application/octet-stream";
|
get.headers["accept"] = "application/octet-stream";
|
||||||
get.range = {{
|
get.range = {{
|
||||||
offset,
|
offset,
|
||||||
@@ -741,7 +734,7 @@ auto sia_provider::remove_directory_impl(const std::string &api_path)
|
|||||||
curl::requests::http_delete del{};
|
curl::requests::http_delete del{};
|
||||||
del.allow_timeout = true;
|
del.allow_timeout = true;
|
||||||
del.path = "/api/bus/object" + api_path + "/";
|
del.path = "/api/bus/object" + api_path + "/";
|
||||||
del.query["bucket"] = get_bucket(get_sia_config());
|
del.query["bucket"] = get_sia_config().bucket;
|
||||||
|
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
del.response_handler = [&error_data](auto &&data, long response_code) {
|
del.response_handler = [&error_data](auto &&data, long response_code) {
|
||||||
@@ -777,7 +770,7 @@ auto sia_provider::remove_file_impl(const std::string &api_path) -> api_error {
|
|||||||
curl::requests::http_delete del{};
|
curl::requests::http_delete del{};
|
||||||
del.allow_timeout = true;
|
del.allow_timeout = true;
|
||||||
del.path = "/api/bus/object" + api_path;
|
del.path = "/api/bus/object" + api_path;
|
||||||
del.query["bucket"] = get_bucket(get_sia_config());
|
del.query["bucket"] = get_sia_config().bucket;
|
||||||
|
|
||||||
std::string error_data;
|
std::string error_data;
|
||||||
del.response_handler = [&error_data](auto &&data, long response_code) {
|
del.response_handler = [&error_data](auto &&data, long response_code) {
|
||||||
@@ -815,7 +808,7 @@ auto sia_provider::rename_file(const std::string &from_api_path,
|
|||||||
try {
|
try {
|
||||||
curl::requests::http_post post{};
|
curl::requests::http_post post{};
|
||||||
post.json = nlohmann::json({
|
post.json = nlohmann::json({
|
||||||
{"bucket", get_bucket(get_sia_config())},
|
{"bucket", get_sia_config().bucket},
|
||||||
{"from", from_api_path},
|
{"from", from_api_path},
|
||||||
{"to", to_api_path},
|
{"to", to_api_path},
|
||||||
{"mode", "single"},
|
{"mode", "single"},
|
||||||
@@ -889,7 +882,7 @@ auto sia_provider::upload_file_impl(const std::string &api_path,
|
|||||||
|
|
||||||
curl::requests::http_put_file put_file{};
|
curl::requests::http_put_file put_file{};
|
||||||
put_file.path = "/api/worker/object" + api_path;
|
put_file.path = "/api/worker/object" + api_path;
|
||||||
put_file.query["bucket"] = get_bucket(get_sia_config());
|
put_file.query["bucket"] = get_sia_config().bucket;
|
||||||
put_file.headers["content-type"] = "application/octet-stream";
|
put_file.headers["content-type"] = "application/octet-stream";
|
||||||
put_file.source_path = source_path;
|
put_file.source_path = source_path;
|
||||||
|
|
||||||
|
@@ -113,16 +113,12 @@ auto main(int argc, char **argv) -> int {
|
|||||||
if (res == exit_code::success) {
|
if (res == exit_code::success) {
|
||||||
unique_id = utils::string::trim(data);
|
unique_id = utils::string::trim(data);
|
||||||
if (unique_id.empty()) {
|
if (unique_id.empty()) {
|
||||||
if (prov == provider_type::sia) {
|
|
||||||
unique_id = "default";
|
|
||||||
} else {
|
|
||||||
std::cerr << "Configuration name for '"
|
std::cerr << "Configuration name for '"
|
||||||
<< app_config::get_provider_display_name(prov)
|
<< app_config::get_provider_display_name(prov)
|
||||||
<< "' was not provided" << std::endl;
|
<< "' was not provided" << std::endl;
|
||||||
res = exit_code::invalid_syntax;
|
res = exit_code::invalid_syntax;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (res == exit_code::success) {
|
if (res == exit_code::success) {
|
||||||
data_directory =
|
data_directory =
|
||||||
|
@@ -100,7 +100,7 @@ Map<String, dynamic> createDefaultSettings(String mountType) {
|
|||||||
'ApiPort': 9980,
|
'ApiPort': 9980,
|
||||||
'HostNameOrIp': 'localhost',
|
'HostNameOrIp': 'localhost',
|
||||||
},
|
},
|
||||||
'SiaConfig': {'Bucket': 'default'},
|
'SiaConfig': {'Bucket': ''},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -212,7 +212,7 @@ class _AddMountScreenState extends State<AddMountScreen> {
|
|||||||
if (_mountType == 'Remote') {
|
if (_mountType == 'Remote') {
|
||||||
_mountNameController.text = 'remote';
|
_mountNameController.text = 'remote';
|
||||||
} else if (changed) {
|
} else if (changed) {
|
||||||
_mountNameController.text = mountType == 'Sia' ? 'default' : '';
|
_mountNameController.text = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
_mount = (_mountNameController.text.isEmpty)
|
_mount = (_mountNameController.text.isEmpty)
|
||||||
|
Reference in New Issue
Block a user