mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-06 12:19:37 -06:00
chore: bump reva to 56879111e06afa9e8c04ee71409548531cda7d76
This commit is contained in:
@@ -52,6 +52,7 @@ import (
|
||||
"github.com/cs3org/reva/v2/pkg/rhttp/router"
|
||||
"github.com/cs3org/reva/v2/pkg/storagespace"
|
||||
"github.com/cs3org/reva/v2/pkg/utils"
|
||||
"github.com/iancoleman/strcase"
|
||||
"github.com/rs/zerolog"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/codes"
|
||||
@@ -1147,18 +1148,18 @@ func mdToPropResponse(ctx context.Context, pf *XML, md *provider.ResourceInfo, p
|
||||
appendMetadataProp := func(metadata map[string]string, tagNamespace string, name string, metadataPrefix string, keys []string) {
|
||||
content := strings.Builder{}
|
||||
for _, key := range keys {
|
||||
lowerCaseKey := strings.ToLower(key)
|
||||
kebabCaseKey := strcase.ToKebab(key)
|
||||
if v, ok := metadata[fmt.Sprintf("%s.%s", metadataPrefix, key)]; ok {
|
||||
content.WriteString("<")
|
||||
content.WriteString(tagNamespace)
|
||||
content.WriteString(":")
|
||||
content.WriteString(lowerCaseKey)
|
||||
content.WriteString(kebabCaseKey)
|
||||
content.WriteString(">")
|
||||
content.Write(prop.Escaped("", v).InnerXML)
|
||||
content.WriteString("</")
|
||||
content.WriteString(tagNamespace)
|
||||
content.WriteString(":")
|
||||
content.WriteString(lowerCaseKey)
|
||||
content.WriteString(kebabCaseKey)
|
||||
content.WriteString(">")
|
||||
}
|
||||
}
|
||||
|
||||
25
vendor/github.com/cs3org/reva/v2/pkg/storage/fs/ocis/blobstore/blobstore.go
generated
vendored
25
vendor/github.com/cs3org/reva/v2/pkg/storage/fs/ocis/blobstore/blobstore.go
generated
vendored
@@ -24,6 +24,7 @@ import (
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/lookup"
|
||||
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node"
|
||||
@@ -109,6 +110,30 @@ func (bs *Blobstore) Delete(node *node.Node) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// List lists all blobs in the Blobstore
|
||||
func (bs *Blobstore) List() ([]string, error) {
|
||||
dirs, err := filepath.Glob(filepath.Join(bs.root, "spaces", "*", "*", "blobs", "*", "*", "*", "*", "*"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
blobids := make([]string, 0, len(dirs))
|
||||
for _, d := range dirs {
|
||||
seps := strings.Split(d, "/")
|
||||
var b string
|
||||
var now bool
|
||||
for _, s := range seps {
|
||||
if now {
|
||||
b += s
|
||||
}
|
||||
if s == "blobs" {
|
||||
now = true
|
||||
}
|
||||
}
|
||||
blobids = append(blobids, b)
|
||||
}
|
||||
return blobids, nil
|
||||
}
|
||||
|
||||
func (bs *Blobstore) path(node *node.Node) (string, error) {
|
||||
if node.BlobID == "" {
|
||||
return "", fmt.Errorf("blobstore: BlobID is empty")
|
||||
|
||||
18
vendor/github.com/cs3org/reva/v2/pkg/storage/fs/s3ng/blobstore/blobstore.go
generated
vendored
18
vendor/github.com/cs3org/reva/v2/pkg/storage/fs/s3ng/blobstore/blobstore.go
generated
vendored
@@ -25,6 +25,7 @@ import (
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/lookup"
|
||||
"github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/node"
|
||||
@@ -127,6 +128,23 @@ func (bs *Blobstore) Delete(node *node.Node) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// List lists all blobs in the Blobstore
|
||||
func (bs *Blobstore) List() ([]string, error) {
|
||||
ch := bs.client.ListObjects(context.Background(), bs.bucket, minio.ListObjectsOptions{Recursive: true})
|
||||
|
||||
var err error
|
||||
ids := make([]string, 0)
|
||||
for oi := range ch {
|
||||
if oi.Err != nil {
|
||||
err = oi.Err
|
||||
continue
|
||||
}
|
||||
_, blobid, _ := strings.Cut(oi.Key, "/")
|
||||
ids = append(ids, strings.ReplaceAll(blobid, "/", ""))
|
||||
}
|
||||
return ids, err
|
||||
}
|
||||
|
||||
func (bs *Blobstore) path(node *node.Node) string {
|
||||
// https://aws.amazon.com/de/premiumsupport/knowledge-center/s3-prefix-nested-folders-difference/
|
||||
// Prefixes are used to partion a bucket. A prefix is everything except the filename.
|
||||
|
||||
Reference in New Issue
Block a user