Skip to content

Commit 99ab399

Browse files
committed
Exclude additional non-editable metadata headers.
1 parent c4b81cf commit 99ab399

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

s3/src/main/java/ch/cyberduck/core/s3/S3AttributesAdapter.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.jets3t.service.model.StorageObject;
2626

2727
import java.util.Date;
28+
import java.util.HashMap;
2829
import java.util.Map;
2930

3031
import com.google.common.collect.Maps;
@@ -77,7 +78,7 @@ public String getDescription() {
7778
});
7879
}
7980
}
80-
final Map<String, String> metadata = Maps.transformValues(object.getModifiableMetadata(), Object::toString);
81+
final Map<String, String> metadata = metadata(object);
8182
if(!metadata.isEmpty()) {
8283
attributes.setMetadata(metadata);
8384
}
@@ -93,4 +94,17 @@ public String getDescription() {
9394
}
9495
return attributes;
9596
}
97+
98+
/**
99+
* @return Pruned metadata with user editable headers only
100+
*/
101+
public static Map<String, String> metadata(final StorageObject object) {
102+
final Map<String, String> metadata = new HashMap<>(Maps.transformValues(object.getModifiableMetadata(), Object::toString));
103+
metadata.keySet().removeIf(header -> StringUtils.equalsIgnoreCase(header, "storage-class"));
104+
metadata.keySet().removeIf(header -> StringUtils.equalsIgnoreCase(header, "server-side-encryption"));
105+
metadata.keySet().removeIf(header -> StringUtils.equalsIgnoreCase(header, "expiration"));
106+
metadata.keySet().removeIf(header -> StringUtils.equalsIgnoreCase(header, "checksum-sha256"));
107+
metadata.keySet().removeIf(header -> StringUtils.equalsIgnoreCase(header, "version-id"));
108+
return metadata;
109+
}
96110
}

0 commit comments

Comments
 (0)