mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-29 19:52:24 -05:00 
			
		
		
		
	[chore]: Bump github.com/minio/minio-go/v7 from 7.0.74 to 7.0.75 (#3208)
This commit is contained in:
		
					parent
					
						
							
								6ff8376d96
							
						
					
				
			
			
				commit
				
					
						c28a18b680
					
				
			
		
					 9 changed files with 1324 additions and 20 deletions
				
			
		
							
								
								
									
										2
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -43,7 +43,7 @@ require ( | ||||||
| 	github.com/jackc/pgx/v5 v5.6.0 | 	github.com/jackc/pgx/v5 v5.6.0 | ||||||
| 	github.com/microcosm-cc/bluemonday v1.0.27 | 	github.com/microcosm-cc/bluemonday v1.0.27 | ||||||
| 	github.com/miekg/dns v1.1.61 | 	github.com/miekg/dns v1.1.61 | ||||||
| 	github.com/minio/minio-go/v7 v7.0.74 | 	github.com/minio/minio-go/v7 v7.0.75 | ||||||
| 	github.com/mitchellh/mapstructure v1.5.0 | 	github.com/mitchellh/mapstructure v1.5.0 | ||||||
| 	github.com/ncruces/go-sqlite3 v0.18.0 | 	github.com/ncruces/go-sqlite3 v0.18.0 | ||||||
| 	github.com/oklog/ulid v1.3.1 | 	github.com/oklog/ulid v1.3.1 | ||||||
|  |  | ||||||
							
								
								
									
										4
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -421,8 +421,8 @@ github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= | ||||||
| github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= | github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= | ||||||
| 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.74 h1:fTo/XlPBTSpo3BAMshlwKL5RspXRv9us5UeHEGYCFe0= | github.com/minio/minio-go/v7 v7.0.75 h1:0uLrB6u6teY2Jt+cJUVi9cTvDRuBKWSRzSAcznRkwlE= | ||||||
| github.com/minio/minio-go/v7 v7.0.74/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8= | github.com/minio/minio-go/v7 v7.0.75/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8= | ||||||
| github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= | github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= | ||||||
| github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= | github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= | ||||||
| github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= | github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= | ||||||
|  |  | ||||||
							
								
								
									
										136
									
								
								vendor/github.com/minio/minio-go/v7/api-bucket-cors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								vendor/github.com/minio/minio-go/v7/api-bucket-cors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,136 @@ | ||||||
|  | /* | ||||||
|  |  * MinIO Go Library for Amazon S3 Compatible Cloud Storage | ||||||
|  |  * Copyright 2024 MinIO, Inc. | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package minio | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"context" | ||||||
|  | 	"net/http" | ||||||
|  | 	"net/url" | ||||||
|  | 
 | ||||||
|  | 	"github.com/minio/minio-go/v7/pkg/cors" | ||||||
|  | 	"github.com/minio/minio-go/v7/pkg/s3utils" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // SetBucketCors sets the cors configuration for the bucket | ||||||
|  | func (c *Client) SetBucketCors(ctx context.Context, bucketName string, corsConfig *cors.Config) error { | ||||||
|  | 	if err := s3utils.CheckValidBucketName(bucketName); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if corsConfig == nil { | ||||||
|  | 		return c.removeBucketCors(ctx, bucketName) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return c.putBucketCors(ctx, bucketName, corsConfig) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *Client) putBucketCors(ctx context.Context, bucketName string, corsConfig *cors.Config) error { | ||||||
|  | 	urlValues := make(url.Values) | ||||||
|  | 	urlValues.Set("cors", "") | ||||||
|  | 
 | ||||||
|  | 	corsStr, err := corsConfig.ToXML() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	reqMetadata := requestMetadata{ | ||||||
|  | 		bucketName:       bucketName, | ||||||
|  | 		queryValues:      urlValues, | ||||||
|  | 		contentBody:      bytes.NewReader(corsStr), | ||||||
|  | 		contentLength:    int64(len(corsStr)), | ||||||
|  | 		contentMD5Base64: sumMD5Base64([]byte(corsStr)), | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	resp, err := c.executeMethod(ctx, http.MethodPut, reqMetadata) | ||||||
|  | 	defer closeResponse(resp) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if resp != nil { | ||||||
|  | 		if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent { | ||||||
|  | 			return httpRespToErrorResponse(resp, bucketName, "") | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *Client) removeBucketCors(ctx context.Context, bucketName string) error { | ||||||
|  | 	urlValues := make(url.Values) | ||||||
|  | 	urlValues.Set("cors", "") | ||||||
|  | 
 | ||||||
|  | 	resp, err := c.executeMethod(ctx, http.MethodDelete, requestMetadata{ | ||||||
|  | 		bucketName:       bucketName, | ||||||
|  | 		queryValues:      urlValues, | ||||||
|  | 		contentSHA256Hex: emptySHA256Hex, | ||||||
|  | 	}) | ||||||
|  | 	defer closeResponse(resp) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if resp.StatusCode != http.StatusNoContent { | ||||||
|  | 		return httpRespToErrorResponse(resp, bucketName, "") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // GetBucketCors returns the current cors | ||||||
|  | func (c *Client) GetBucketCors(ctx context.Context, bucketName string) (*cors.Config, error) { | ||||||
|  | 	if err := s3utils.CheckValidBucketName(bucketName); err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	bucketCors, err := c.getBucketCors(ctx, bucketName) | ||||||
|  | 	if err != nil { | ||||||
|  | 		errResponse := ToErrorResponse(err) | ||||||
|  | 		if errResponse.Code == "NoSuchCORSConfiguration" { | ||||||
|  | 			return nil, nil | ||||||
|  | 		} | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return bucketCors, nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *Client) getBucketCors(ctx context.Context, bucketName string) (*cors.Config, error) { | ||||||
|  | 	urlValues := make(url.Values) | ||||||
|  | 	urlValues.Set("cors", "") | ||||||
|  | 
 | ||||||
|  | 	resp, err := c.executeMethod(ctx, http.MethodGet, requestMetadata{ | ||||||
|  | 		bucketName:       bucketName, | ||||||
|  | 		queryValues:      urlValues, | ||||||
|  | 		contentSHA256Hex: emptySHA256Hex, // TODO: needed? copied over from other example, but not spec'd in API. | ||||||
|  | 	}) | ||||||
|  | 
 | ||||||
|  | 	defer closeResponse(resp) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if resp != nil { | ||||||
|  | 		if resp.StatusCode != http.StatusOK { | ||||||
|  | 			return nil, httpRespToErrorResponse(resp, bucketName, "") | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	corsConfig, err := cors.ParseBucketCorsConfig(resp.Body) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return corsConfig, nil | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/minio/minio-go/v7/api.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/minio/minio-go/v7/api.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -129,7 +129,7 @@ type Options struct { | ||||||
| // Global constants. | // Global constants. | ||||||
| const ( | const ( | ||||||
| 	libraryName    = "minio-go" | 	libraryName    = "minio-go" | ||||||
| 	libraryVersion = "v7.0.74" | 	libraryVersion = "v7.0.75" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // User Agent should always following the below style. | // User Agent should always following the below style. | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								vendor/github.com/minio/minio-go/v7/core.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/minio/minio-go/v7/core.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -91,6 +91,7 @@ type PutObjectPartOptions struct { | ||||||
| 	Md5Base64, Sha256Hex  string | 	Md5Base64, Sha256Hex  string | ||||||
| 	SSE                   encrypt.ServerSide | 	SSE                   encrypt.ServerSide | ||||||
| 	CustomHeader, Trailer http.Header | 	CustomHeader, Trailer http.Header | ||||||
|  | 	DisableContentSha256  bool | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PutObjectPart - Upload an object part. | // PutObjectPart - Upload an object part. | ||||||
|  | @ -107,7 +108,7 @@ func (c Core) PutObjectPart(ctx context.Context, bucket, object, uploadID string | ||||||
| 		sha256Hex:    opts.Sha256Hex, | 		sha256Hex:    opts.Sha256Hex, | ||||||
| 		size:         size, | 		size:         size, | ||||||
| 		sse:          opts.SSE, | 		sse:          opts.SSE, | ||||||
| 		streamSha256: true, | 		streamSha256: !opts.DisableContentSha256, | ||||||
| 		customHeader: opts.CustomHeader, | 		customHeader: opts.CustomHeader, | ||||||
| 		trailer:      opts.Trailer, | 		trailer:      opts.Trailer, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
							
								
								
									
										1102
									
								
								vendor/github.com/minio/minio-go/v7/functional_tests.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1102
									
								
								vendor/github.com/minio/minio-go/v7/functional_tests.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										91
									
								
								vendor/github.com/minio/minio-go/v7/pkg/cors/cors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								vendor/github.com/minio/minio-go/v7/pkg/cors/cors.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,91 @@ | ||||||
|  | /* | ||||||
|  |  * MinIO Go Library for Amazon S3 Compatible Cloud Storage | ||||||
|  |  * Copyright 2015-2024 MinIO, Inc. | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package cors | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/xml" | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
|  | 	"strings" | ||||||
|  | 
 | ||||||
|  | 	"github.com/dustin/go-humanize" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const defaultXMLNS = "http://s3.amazonaws.com/doc/2006-03-01/" | ||||||
|  | 
 | ||||||
|  | // Config is the container for a CORS configuration for a bucket. | ||||||
|  | type Config struct { | ||||||
|  | 	XMLNS     string   `xml:"xmlns,attr,omitempty"` | ||||||
|  | 	XMLName   xml.Name `xml:"CORSConfiguration"` | ||||||
|  | 	CORSRules []Rule   `xml:"CORSRule"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Rule is a single rule in a CORS configuration. | ||||||
|  | type Rule struct { | ||||||
|  | 	AllowedHeader []string `xml:"AllowedHeader,omitempty"` | ||||||
|  | 	AllowedMethod []string `xml:"AllowedMethod,omitempty"` | ||||||
|  | 	AllowedOrigin []string `xml:"AllowedOrigin,omitempty"` | ||||||
|  | 	ExposeHeader  []string `xml:"ExposeHeader,omitempty"` | ||||||
|  | 	ID            string   `xml:"ID,omitempty"` | ||||||
|  | 	MaxAgeSeconds int      `xml:"MaxAgeSeconds,omitempty"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // NewConfig creates a new CORS configuration with the given rules. | ||||||
|  | func NewConfig(rules []Rule) *Config { | ||||||
|  | 	return &Config{ | ||||||
|  | 		XMLNS: defaultXMLNS, | ||||||
|  | 		XMLName: xml.Name{ | ||||||
|  | 			Local: "CORSConfiguration", | ||||||
|  | 			Space: defaultXMLNS, | ||||||
|  | 		}, | ||||||
|  | 		CORSRules: rules, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ParseBucketCorsConfig parses a CORS configuration in XML from an io.Reader. | ||||||
|  | func ParseBucketCorsConfig(reader io.Reader) (*Config, error) { | ||||||
|  | 	var c Config | ||||||
|  | 
 | ||||||
|  | 	// Max size of cors document is 64KiB according to https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html | ||||||
|  | 	// This limiter is just for safety so has a max of 128KiB | ||||||
|  | 	err := xml.NewDecoder(io.LimitReader(reader, 128*humanize.KiByte)).Decode(&c) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("decoding xml: %w", err) | ||||||
|  | 	} | ||||||
|  | 	if c.XMLNS == "" { | ||||||
|  | 		c.XMLNS = defaultXMLNS | ||||||
|  | 	} | ||||||
|  | 	for i, rule := range c.CORSRules { | ||||||
|  | 		for j, method := range rule.AllowedMethod { | ||||||
|  | 			c.CORSRules[i].AllowedMethod[j] = strings.ToUpper(method) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return &c, nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ToXML marshals the CORS configuration to XML. | ||||||
|  | func (c Config) ToXML() ([]byte, error) { | ||||||
|  | 	if c.XMLNS == "" { | ||||||
|  | 		c.XMLNS = defaultXMLNS | ||||||
|  | 	} | ||||||
|  | 	data, err := xml.Marshal(&c) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, fmt.Errorf("marshaling xml: %w", err) | ||||||
|  | 	} | ||||||
|  | 	return append([]byte(xml.Header), data...), nil | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								vendor/github.com/minio/minio-go/v7/s3-error.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/minio/minio-go/v7/s3-error.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -57,5 +57,6 @@ var s3ErrorResponseMap = map[string]string{ | ||||||
| 	"BucketAlreadyOwnedByYou":           "Your previous request to create the named bucket succeeded and you already own it.", | 	"BucketAlreadyOwnedByYou":           "Your previous request to create the named bucket succeeded and you already own it.", | ||||||
| 	"InvalidDuration":                   "Duration provided in the request is invalid.", | 	"InvalidDuration":                   "Duration provided in the request is invalid.", | ||||||
| 	"XAmzContentSHA256Mismatch":         "The provided 'x-amz-content-sha256' header does not match what was computed.", | 	"XAmzContentSHA256Mismatch":         "The provided 'x-amz-content-sha256' header does not match what was computed.", | ||||||
|  | 	"NoSuchCORSConfiguration":           "The specified bucket does not have a CORS configuration.", | ||||||
| 	// Add new API errors here. | 	// Add new API errors here. | ||||||
| } | } | ||||||
|  |  | ||||||
							
								
								
									
										3
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -495,9 +495,10 @@ 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.74 | # github.com/minio/minio-go/v7 v7.0.75 | ||||||
| ## explicit; go 1.21 | ## explicit; go 1.21 | ||||||
| github.com/minio/minio-go/v7 | github.com/minio/minio-go/v7 | ||||||
|  | github.com/minio/minio-go/v7/pkg/cors | ||||||
| github.com/minio/minio-go/v7/pkg/credentials | github.com/minio/minio-go/v7/pkg/credentials | ||||||
| github.com/minio/minio-go/v7/pkg/encrypt | github.com/minio/minio-go/v7/pkg/encrypt | ||||||
| github.com/minio/minio-go/v7/pkg/lifecycle | github.com/minio/minio-go/v7/pkg/lifecycle | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue