mirror of
https://github.com/minio/minio.git
synced 2025-11-10 05:59:43 -05:00
Fix storage class related issues (#5338)
- Update startup banner to print storage class in capitals. This makes it easier to identify different storage classes available. - Update response metadata to not send STANDARD storage class. This is in accordance with AWS S3 behaviour. - Update minio-go library to bring in storage class related changes. This is needed to make transparent translation of storage class headers for Minio S3 Gateway.
This commit is contained in:
@@ -187,14 +187,26 @@ func getCompleteMultipartMD5(parts []CompletePart) (string, error) {
|
||||
return s3MD5, nil
|
||||
}
|
||||
|
||||
// Clean meta etag keys 'md5Sum', 'etag'.
|
||||
func cleanMetaETag(metadata map[string]string) map[string]string {
|
||||
return cleanMetadata(metadata, "md5Sum", "etag")
|
||||
// Clean unwanted fields from metadata
|
||||
func cleanMetadata(metadata map[string]string) map[string]string {
|
||||
// Remove STANDARD StorageClass
|
||||
metadata = removeStandardStorageClass(metadata)
|
||||
// Clean meta etag keys 'md5Sum', 'etag'.
|
||||
return cleanMetadataKeys(metadata, "md5Sum", "etag")
|
||||
}
|
||||
|
||||
// Clean metadata takes keys to be filtered
|
||||
// and returns a new map with the keys filtered.
|
||||
func cleanMetadata(metadata map[string]string, keyNames ...string) map[string]string {
|
||||
// Filter X-Amz-Storage-Class field only if it is set to STANDARD.
|
||||
// This is done since AWS S3 doesn't return STANDARD Storage class as response header.
|
||||
func removeStandardStorageClass(metadata map[string]string) map[string]string {
|
||||
if metadata[amzStorageClass] == standardStorageClass {
|
||||
delete(metadata, amzStorageClass)
|
||||
}
|
||||
return metadata
|
||||
}
|
||||
|
||||
// cleanMetadataKeys takes keyNames to be filtered
|
||||
// and returns a new map with all the entries with keyNames removed.
|
||||
func cleanMetadataKeys(metadata map[string]string, keyNames ...string) map[string]string {
|
||||
var newMeta = make(map[string]string)
|
||||
for k, v := range metadata {
|
||||
if contains(keyNames, k) {
|
||||
|
||||
Reference in New Issue
Block a user