[chore]: Bump github.com/minio/minio-go/v7 from 7.0.50 to 7.0.52 (#1703)
Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.50 to 7.0.52. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.50...v7.0.52) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
922bd89f17
commit
ef3004b77f
2
go.mod
2
go.mod
|
@ -36,7 +36,7 @@ require (
|
||||||
github.com/jackc/pgx/v4 v4.18.1
|
github.com/jackc/pgx/v4 v4.18.1
|
||||||
github.com/microcosm-cc/bluemonday v1.0.23
|
github.com/microcosm-cc/bluemonday v1.0.23
|
||||||
github.com/miekg/dns v1.1.53
|
github.com/miekg/dns v1.1.53
|
||||||
github.com/minio/minio-go/v7 v7.0.50
|
github.com/minio/minio-go/v7 v7.0.52
|
||||||
github.com/mitchellh/mapstructure v1.5.0
|
github.com/mitchellh/mapstructure v1.5.0
|
||||||
github.com/oklog/ulid v1.3.1
|
github.com/oklog/ulid v1.3.1
|
||||||
github.com/spf13/cobra v1.7.0
|
github.com/spf13/cobra v1.7.0
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -442,8 +442,8 @@ github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw=
|
||||||
github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
|
||||||
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
|
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
|
||||||
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
|
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
|
||||||
github.com/minio/minio-go/v7 v7.0.50 h1:4IL4V8m/kI90ZL6GupCARZVrBv8/XrcKcJhaJ3iz68k=
|
github.com/minio/minio-go/v7 v7.0.52 h1:8XhG36F6oKQUDDSuz6dY3rioMzovKjW40W6ANuN0Dps=
|
||||||
github.com/minio/minio-go/v7 v7.0.50/go.mod h1:IbbodHyjUAguneyucUaahv+VMNs/EOTV9du7A7/Z3HU=
|
github.com/minio/minio-go/v7 v7.0.52/go.mod h1:IbbodHyjUAguneyucUaahv+VMNs/EOTV9du7A7/Z3HU=
|
||||||
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
|
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
|
||||||
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
|
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
|
||||||
github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4=
|
github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4=
|
||||||
|
|
|
@ -20,7 +20,7 @@ vet:
|
||||||
${GOPATH}/bin/staticcheck -tests=false -checks="all,-ST1000,-ST1003,-ST1016,-ST1020,-ST1021,-ST1022,-ST1023,-ST1005"
|
${GOPATH}/bin/staticcheck -tests=false -checks="all,-ST1000,-ST1003,-ST1016,-ST1020,-ST1021,-ST1022,-ST1023,-ST1005"
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@GO111MODULE=on SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minio SECRET_KEY=minio123 ENABLE_HTTPS=1 MINT_MODE=full go test -race -v ./...
|
@GO111MODULE=on SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minioadmin SECRET_KEY=minioadmin ENABLE_HTTPS=1 MINT_MODE=full go test -race -v ./...
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
@echo "Building s3 examples"
|
@echo "Building s3 examples"
|
||||||
|
@ -30,7 +30,7 @@ examples:
|
||||||
|
|
||||||
functional-test:
|
functional-test:
|
||||||
@GO111MODULE=on go build -race functional_tests.go
|
@GO111MODULE=on go build -race functional_tests.go
|
||||||
@SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minio SECRET_KEY=minio123 ENABLE_HTTPS=1 MINT_MODE=full ./functional_tests
|
@SERVER_ENDPOINT=localhost:9000 ACCESS_KEY=minioadmin SECRET_KEY=minioadmin ENABLE_HTTPS=1 MINT_MODE=full ./functional_tests
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@echo "Cleaning up all the generated files"
|
@echo "Cleaning up all the generated files"
|
||||||
|
|
|
@ -21,6 +21,8 @@ import (
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -45,12 +47,12 @@ type StringMap map[string]string
|
||||||
// on the first line is initialize it.
|
// on the first line is initialize it.
|
||||||
func (m *StringMap) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error {
|
func (m *StringMap) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error {
|
||||||
*m = StringMap{}
|
*m = StringMap{}
|
||||||
type Item struct {
|
|
||||||
Key string
|
|
||||||
Value string
|
|
||||||
}
|
|
||||||
for {
|
for {
|
||||||
var e Item
|
// Format is <key>value</key>
|
||||||
|
var e struct {
|
||||||
|
XMLName xml.Name
|
||||||
|
Value string `xml:",chardata"`
|
||||||
|
}
|
||||||
err := d.Decode(&e)
|
err := d.Decode(&e)
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
break
|
break
|
||||||
|
@ -58,11 +60,63 @@ func (m *StringMap) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
(*m)[e.Key] = e.Value
|
(*m)[e.XMLName.Local] = e.Value
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// URLMap represents map with custom UnmarshalXML
|
||||||
|
type URLMap map[string]string
|
||||||
|
|
||||||
|
// UnmarshalXML unmarshals the XML into a map of string to strings,
|
||||||
|
// creating a key in the map for each tag and setting it's value to the
|
||||||
|
// tags contents.
|
||||||
|
//
|
||||||
|
// The fact this function is on the pointer of Map is important, so that
|
||||||
|
// if m is nil it can be initialized, which is often the case if m is
|
||||||
|
// nested in another xml structural. This is also why the first thing done
|
||||||
|
// on the first line is initialize it.
|
||||||
|
func (m *URLMap) UnmarshalXML(d *xml.Decoder, se xml.StartElement) error {
|
||||||
|
*m = URLMap{}
|
||||||
|
var tgs string
|
||||||
|
if err := d.DecodeElement(&tgs, &se); err != nil {
|
||||||
|
if err == io.EOF {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for tgs != "" {
|
||||||
|
var key string
|
||||||
|
key, tgs, _ = stringsCut(tgs, "&")
|
||||||
|
if key == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
key, value, _ := stringsCut(key, "=")
|
||||||
|
key, err := url.QueryUnescape(key)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
value, err = url.QueryUnescape(value)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
(*m)[key] = value
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// stringsCut slices s around the first instance of sep,
|
||||||
|
// returning the text before and after sep.
|
||||||
|
// The found result reports whether sep appears in s.
|
||||||
|
// If sep does not appear in s, cut returns s, "", false.
|
||||||
|
func stringsCut(s, sep string) (before, after string, found bool) {
|
||||||
|
if i := strings.Index(s, sep); i >= 0 {
|
||||||
|
return s[:i], s[i+len(sep):], true
|
||||||
|
}
|
||||||
|
return s, "", false
|
||||||
|
}
|
||||||
|
|
||||||
// Owner name.
|
// Owner name.
|
||||||
type Owner struct {
|
type Owner struct {
|
||||||
XMLName xml.Name `xml:"Owner" json:"owner"`
|
XMLName xml.Name `xml:"Owner" json:"owner"`
|
||||||
|
@ -121,10 +175,12 @@ type ObjectInfo struct {
|
||||||
Metadata http.Header `json:"metadata" xml:"-"`
|
Metadata http.Header `json:"metadata" xml:"-"`
|
||||||
|
|
||||||
// x-amz-meta-* headers stripped "x-amz-meta-" prefix containing the first value.
|
// x-amz-meta-* headers stripped "x-amz-meta-" prefix containing the first value.
|
||||||
|
// Only returned by MinIO servers.
|
||||||
UserMetadata StringMap `json:"userMetadata,omitempty"`
|
UserMetadata StringMap `json:"userMetadata,omitempty"`
|
||||||
|
|
||||||
// x-amz-tagging values in their k/v values.
|
// x-amz-tagging values in their k/v values.
|
||||||
UserTags map[string]string `json:"userTags"`
|
// Only returned by MinIO servers.
|
||||||
|
UserTags URLMap `json:"userTags,omitempty" xml:"UserTags"`
|
||||||
|
|
||||||
// x-amz-tagging-count value
|
// x-amz-tagging-count value
|
||||||
UserTagCount int
|
UserTagCount int
|
||||||
|
|
|
@ -402,7 +402,7 @@ func (c *Client) listObjectVersions(ctx context.Context, bucketName string, opts
|
||||||
|
|
||||||
for {
|
for {
|
||||||
// Get list of objects a maximum of 1000 per request.
|
// Get list of objects a maximum of 1000 per request.
|
||||||
result, err := c.listObjectVersionsQuery(ctx, bucketName, opts.Prefix, keyMarker, versionIDMarker, delimiter, opts.MaxKeys, opts.headers)
|
result, err := c.listObjectVersionsQuery(ctx, bucketName, opts, keyMarker, versionIDMarker, delimiter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
sendObjectInfo(ObjectInfo{
|
sendObjectInfo(ObjectInfo{
|
||||||
Err: err,
|
Err: err,
|
||||||
|
@ -422,6 +422,8 @@ func (c *Client) listObjectVersions(ctx context.Context, bucketName string, opts
|
||||||
IsLatest: version.IsLatest,
|
IsLatest: version.IsLatest,
|
||||||
VersionID: version.VersionID,
|
VersionID: version.VersionID,
|
||||||
IsDeleteMarker: version.isDeleteMarker,
|
IsDeleteMarker: version.isDeleteMarker,
|
||||||
|
UserTags: version.UserTags,
|
||||||
|
UserMetadata: version.UserMetadata,
|
||||||
}
|
}
|
||||||
select {
|
select {
|
||||||
// Send object version info.
|
// Send object version info.
|
||||||
|
@ -474,13 +476,13 @@ func (c *Client) listObjectVersions(ctx context.Context, bucketName string, opts
|
||||||
// ?delimiter - A delimiter is a character you use to group keys.
|
// ?delimiter - A delimiter is a character you use to group keys.
|
||||||
// ?prefix - Limits the response to keys that begin with the specified prefix.
|
// ?prefix - Limits the response to keys that begin with the specified prefix.
|
||||||
// ?max-keys - Sets the maximum number of keys returned in the response body.
|
// ?max-keys - Sets the maximum number of keys returned in the response body.
|
||||||
func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix, keyMarker, versionIDMarker, delimiter string, maxkeys int, headers http.Header) (ListVersionsResult, error) {
|
func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName string, opts ListObjectsOptions, keyMarker, versionIDMarker, delimiter string) (ListVersionsResult, error) {
|
||||||
// Validate bucket name.
|
// Validate bucket name.
|
||||||
if err := s3utils.CheckValidBucketName(bucketName); err != nil {
|
if err := s3utils.CheckValidBucketName(bucketName); err != nil {
|
||||||
return ListVersionsResult{}, err
|
return ListVersionsResult{}, err
|
||||||
}
|
}
|
||||||
// Validate object prefix.
|
// Validate object prefix.
|
||||||
if err := s3utils.CheckValidObjectNamePrefix(prefix); err != nil {
|
if err := s3utils.CheckValidObjectNamePrefix(opts.Prefix); err != nil {
|
||||||
return ListVersionsResult{}, err
|
return ListVersionsResult{}, err
|
||||||
}
|
}
|
||||||
// Get resources properly escaped and lined up before
|
// Get resources properly escaped and lined up before
|
||||||
|
@ -491,7 +493,7 @@ func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix
|
||||||
urlValues.Set("versions", "")
|
urlValues.Set("versions", "")
|
||||||
|
|
||||||
// Set object prefix, prefix value to be set to empty is okay.
|
// Set object prefix, prefix value to be set to empty is okay.
|
||||||
urlValues.Set("prefix", prefix)
|
urlValues.Set("prefix", opts.Prefix)
|
||||||
|
|
||||||
// Set delimiter, delimiter value to be set to empty is okay.
|
// Set delimiter, delimiter value to be set to empty is okay.
|
||||||
urlValues.Set("delimiter", delimiter)
|
urlValues.Set("delimiter", delimiter)
|
||||||
|
@ -502,8 +504,8 @@ func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set max keys.
|
// Set max keys.
|
||||||
if maxkeys > 0 {
|
if opts.MaxKeys > 0 {
|
||||||
urlValues.Set("max-keys", fmt.Sprintf("%d", maxkeys))
|
urlValues.Set("max-keys", fmt.Sprintf("%d", opts.MaxKeys))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set version ID marker
|
// Set version ID marker
|
||||||
|
@ -511,6 +513,10 @@ func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix
|
||||||
urlValues.Set("version-id-marker", versionIDMarker)
|
urlValues.Set("version-id-marker", versionIDMarker)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if opts.WithMetadata {
|
||||||
|
urlValues.Set("metadata", "true")
|
||||||
|
}
|
||||||
|
|
||||||
// Always set encoding-type
|
// Always set encoding-type
|
||||||
urlValues.Set("encoding-type", "url")
|
urlValues.Set("encoding-type", "url")
|
||||||
|
|
||||||
|
@ -519,7 +525,7 @@ func (c *Client) listObjectVersionsQuery(ctx context.Context, bucketName, prefix
|
||||||
bucketName: bucketName,
|
bucketName: bucketName,
|
||||||
queryValues: urlValues,
|
queryValues: urlValues,
|
||||||
contentSHA256Hex: emptySHA256Hex,
|
contentSHA256Hex: emptySHA256Hex,
|
||||||
customHeader: headers,
|
customHeader: opts.headers,
|
||||||
})
|
})
|
||||||
defer closeResponse(resp)
|
defer closeResponse(resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -85,6 +85,14 @@ type Version struct {
|
||||||
StorageClass string
|
StorageClass string
|
||||||
VersionID string `xml:"VersionId"`
|
VersionID string `xml:"VersionId"`
|
||||||
|
|
||||||
|
// x-amz-meta-* headers stripped "x-amz-meta-" prefix containing the first value.
|
||||||
|
// Only returned by MinIO servers.
|
||||||
|
UserMetadata StringMap `json:"userMetadata,omitempty"`
|
||||||
|
|
||||||
|
// x-amz-tagging values in their k/v values.
|
||||||
|
// Only returned by MinIO servers.
|
||||||
|
UserTags URLMap `json:"userTags,omitempty" xml:"UserTags"`
|
||||||
|
|
||||||
isDeleteMarker bool
|
isDeleteMarker bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,7 +124,7 @@ type Options struct {
|
||||||
// Global constants.
|
// Global constants.
|
||||||
const (
|
const (
|
||||||
libraryName = "minio-go"
|
libraryName = "minio-go"
|
||||||
libraryVersion = "v7.0.50"
|
libraryVersion = "v7.0.52"
|
||||||
)
|
)
|
||||||
|
|
||||||
// User Agent should always following the below style.
|
// User Agent should always following the below style.
|
||||||
|
|
|
@ -353,7 +353,7 @@ github.com/miekg/dns
|
||||||
# github.com/minio/md5-simd v1.1.2
|
# github.com/minio/md5-simd v1.1.2
|
||||||
## explicit; go 1.14
|
## explicit; go 1.14
|
||||||
github.com/minio/md5-simd
|
github.com/minio/md5-simd
|
||||||
# github.com/minio/minio-go/v7 v7.0.50
|
# github.com/minio/minio-go/v7 v7.0.52
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
github.com/minio/minio-go/v7
|
github.com/minio/minio-go/v7
|
||||||
github.com/minio/minio-go/v7/pkg/credentials
|
github.com/minio/minio-go/v7/pkg/credentials
|
||||||
|
|
Loading…
Reference in New Issue