Исправлена ошибка с установкой квоты для бакета

This commit is contained in:
Danil Solovyov 2023-07-31 18:03:35 +05:00
parent 5d9e8a76be
commit 7afb2d80e6
4 changed files with 26 additions and 15 deletions

1
.gitignore vendored

@ -1,3 +1,4 @@
.idea .idea
private.key private.key
cert cert
.vscode

@ -25,12 +25,12 @@ func (a *API) GetBucket(c *fiber.Ctx) error {
if err != nil { if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error()) return fiber.NewError(fiber.StatusInternalServerError, err.Error())
} }
err = client.SetBucketQuota(100 << 20)
if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
}
} }
err = client.SetBucketQuota(100 << 20)
if err != nil {
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
}
info, err := client.GetBucketInfoWithStats() info, err := client.GetBucketInfoWithStats()
if err != nil { if err != nil {

@ -5,9 +5,9 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/policy" "github.com/minio/minio-go/v7/pkg/policy"
"github.com/minio/minio-go/v7/pkg/set" "github.com/minio/minio-go/v7/pkg/set"
"github.com/minio/minio-go/v7"
"penahub.gitlab.yandexcloud.net/backend/penahub_disk/dal/yaCloud" "penahub.gitlab.yandexcloud.net/backend/penahub_disk/dal/yaCloud"
) )

@ -5,7 +5,6 @@ import (
"crypto/rsa" "crypto/rsa"
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/golang-jwt/jwt/v4"
"io" "io"
"log" "log"
"net/http" "net/http"
@ -13,18 +12,20 @@ import (
"os" "os"
"strings" "strings"
"time" "time"
"github.com/golang-jwt/jwt/v4"
) )
var ( var (
keyID = "" keyID = "aje4u394kp05ijl74ce3"
serviceAccountID = "" serviceAccountID = "ajelmc4tjbct675tjdh9"
keyFile = "private.key" keyFile = "private.key"
endpoint = "https://storage.api.cloud.yandex.net/storage/v1/buckets" endpoint = "https://storage.api.cloud.yandex.net/storage/v1/buckets"
) )
func init() { func init() {
keyID = os.Getenv("YA_KEY_ID") // keyID = os.Getenv("YA_KEY_ID")
serviceAccountID = os.Getenv("YA_SERVICE_ACC_ID") // serviceAccountID = os.Getenv("YA_SERVICE_ACC_ID")
if val, ok := os.LookupEnv("YA_KEY_FILE"); ok { if val, ok := os.LookupEnv("YA_KEY_FILE"); ok {
keyFile = val keyFile = val
} }
@ -116,9 +117,12 @@ func (c *Client) GetBucketStats() (*BucketStats, error) {
} }
func (c *Client) UpdateBucketMaxSize(quota uint64) error { func (c *Client) UpdateBucketMaxSize(quota uint64) error {
href := fmt.Sprintf("https://%v/storage/v1/buckets/%v", endpoint, c.bucket) href := fmt.Sprintf("%v/%v", endpoint, c.bucket)
body, err := json.Marshal(NewReqUpdateBucketMaxSize(quota)) body, err := json.Marshal(NewReqUpdateBucketMaxSize(quota))
if err != nil {
return err
}
req, err := http.NewRequest("PATCH", href, bytes.NewBuffer(body)) req, err := http.NewRequest("PATCH", href, bytes.NewBuffer(body))
if err != nil { if err != nil {
@ -126,16 +130,19 @@ func (c *Client) UpdateBucketMaxSize(quota uint64) error {
} }
resp, err := c.client.Do(req) resp, err := c.client.Do(req)
defer resp.Body.Close()
if err != nil { if err != nil {
return err return err
} }
defer resp.Body.Close()
if err = checkError(resp); err != nil { if err = checkError(resp); err != nil {
return err return err
} }
var r RespUpdateBucketMaxSize var r RespUpdateBucketMaxSize
if err = json.NewDecoder(resp.Body).Decode(&r); err != nil { if err = json.NewDecoder(resp.Body).Decode(&r); err != nil {
return err return err
} }
@ -151,7 +158,10 @@ func checkError(resp *http.Response) error {
switch resp.StatusCode { switch resp.StatusCode {
case 200, 201, 202, 203, 204, 205, 206, 207, 208, 226: case 200, 201, 202, 203, 204, 205, 206, 207, 208, 226:
return nil return nil
case 404:
return fmt.Errorf("api/yaCloud (404) url: %v", resp.Request.URL)
} }
r := RespError{} r := RespError{}
err := json.NewDecoder(resp.Body).Decode(&r) err := json.NewDecoder(resp.Body).Decode(&r)
if err != nil { if err != nil {