feat: rewrite backend to go

This commit is contained in:
2024-08-18 05:54:08 +07:00
parent e1d2274bfb
commit b554cb4dbf
30 changed files with 448 additions and 592 deletions
+45
View File
@@ -0,0 +1,45 @@
package schema
type GetBucketsRes struct {
ID string `json:"id"`
GlobalAliases []string `json:"globalAliases"`
LocalAliases []string `json:"localAliases"`
}
type Bucket struct {
ID string `json:"id"`
GlobalAliases []string `json:"globalAliases"`
WebsiteAccess bool `json:"websiteAccess"`
WebsiteConfig WebsiteConfig `json:"websiteConfig"`
Keys []KeyElement `json:"keys"`
Objects int64 `json:"objects"`
Bytes int64 `json:"bytes"`
UnfinishedUploads int64 `json:"unfinishedUploads"`
UnfinishedMultipartUploads int64 `json:"unfinishedMultipartUploads"`
UnfinishedMultipartUploadParts int64 `json:"unfinishedMultipartUploadParts"`
UnfinishedMultipartUploadBytes int64 `json:"unfinishedMultipartUploadBytes"`
Quotas Quotas `json:"quotas"`
}
type KeyElement struct {
AccessKeyID string `json:"accessKeyId"`
Name string `json:"name"`
Permissions Permissions `json:"permissions"`
BucketLocalAliases []interface{} `json:"bucketLocalAliases"`
}
type Permissions struct {
Read bool `json:"read"`
Write bool `json:"write"`
Owner bool `json:"owner"`
}
type Quotas struct {
MaxSize int64 `json:"maxSize"`
MaxObjects int64 `json:"maxObjects"`
}
type WebsiteConfig struct {
IndexDocument string `json:"indexDocument"`
ErrorDocument string `json:"errorDocument"`
}
+34
View File
@@ -0,0 +1,34 @@
package schema
type Config struct {
CompressionLevel int64 `json:"compression_level" toml:"compression_level"`
DataDir string `json:"data_dir" toml:"data_dir"`
DBEngine string `json:"db_engine" toml:"db_engine"`
MetadataAutoSnapshotInterval string `json:"metadata_auto_snapshot_interval" toml:"metadata_auto_snapshot_interval"`
MetadataDir string `json:"metadata_dir" toml:"metadata_dir"`
ReplicationFactor int64 `json:"replication_factor" toml:"replication_factor"`
RPCBindAddr string `json:"rpc_bind_addr" toml:"rpc_bind_addr"`
RPCPublicAddr string `json:"rpc_public_addr" toml:"rpc_public_addr"`
RPCSecret string `json:"rpc_secret" toml:"rpc_secret"`
Admin Admin `json:"admin" toml:"admin"`
S3API S3API `json:"s3_api" toml:"s3_api"`
S3Web S3Web `json:"s3_web" toml:"s3_web"`
}
type Admin struct {
AdminToken string `json:"admin_token" toml:"admin_token"`
APIBindAddr string `json:"api_bind_addr" toml:"api_bind_addr"`
MetricsToken string `json:"metrics_token" toml:"metrics_token"`
}
type S3API struct {
APIBindAddr string `json:"api_bind_addr" toml:"api_bind_addr"`
RootDomain string `json:"root_domain" toml:"root_domain"`
S3Region string `json:"s3_region" toml:"s3_region"`
}
type S3Web struct {
BindAddr string `json:"bind_addr" toml:"bind_addr"`
Index string `json:"index" toml:"index"`
RootDomain string `json:"root_domain" toml:"root_domain"`
}