From 02dc3b5e5377d8848c889647e72102cd9acc646d Mon Sep 17 00:00:00 2001
From: Dmitry <58846611+dmitry-fa@users.noreply.github.com>
Date: Tue, 14 Jul 2020 23:47:40 +0300
Subject: [PATCH] fix:
PostPolicyV4.PostFieldsV4.Builder.addCustomMetadataField() allows to add
prefixed an not prefixed custom fields (#398)
* changes to PostPolicyV4
* PostPolicyV4.addCustomMetadataField() allows to add prefixed an not prefixed custom fields
* deprecate incorrectly named method
* fix format
* addCustomMetadataField -> setCustomMetadataField
---
.../google/cloud/storage/PostPolicyV4.java | 38 +++++++++++++------
1 file changed, 27 insertions(+), 11 deletions(-)
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java
index df2936dc9..cc9b413a2 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/PostPolicyV4.java
@@ -31,8 +31,8 @@
* @see POST Object
*/
public final class PostPolicyV4 {
- private String url;
- private Map fields;
+ private final String url;
+ private final Map fields;
private PostPolicyV4(String url, Map fields) {
this.url = url;
@@ -58,7 +58,7 @@ public Map getFields() {
* Object Form fields
*/
public static final class PostFieldsV4 {
- private Map fieldsMap;
+ private final Map fieldsMap;
private PostFieldsV4(Builder builder) {
this.fieldsMap = builder.fieldsMap;
@@ -81,10 +81,11 @@ public Map getFieldsMap() {
}
public static class Builder {
- private Map fieldsMap;
+ private static final String CUSTOM_FIELD_PREFIX = "x-goog-meta-";
+ private final Map fieldsMap;
private Builder() {
- fieldsMap = new HashMap<>();
+ this.fieldsMap = new HashMap<>();
}
public PostFieldsV4 build() {
@@ -121,7 +122,13 @@ public Builder setContentType(String contentType) {
return this;
}
+ /** @deprecated use {@link #setExpires(String)} */
+ @Deprecated
public Builder Expires(String expires) {
+ return setExpires(expires);
+ }
+
+ public Builder setExpires(String expires) {
fieldsMap.put("expires", expires);
return this;
}
@@ -136,8 +143,17 @@ public Builder setSuccessActionStatus(int successActionStatus) {
return this;
}
+ /** @deprecated use {@link #setCustomMetadataField(String, String)} */
+ @Deprecated
public Builder AddCustomMetadataField(String field, String value) {
- fieldsMap.put("x-goog-meta-" + field, value);
+ return setCustomMetadataField(field, value);
+ }
+
+ public Builder setCustomMetadataField(String field, String value) {
+ if (!field.startsWith(CUSTOM_FIELD_PREFIX)) {
+ field = CUSTOM_FIELD_PREFIX + value;
+ }
+ fieldsMap.put(field, value);
return this;
}
}
@@ -270,8 +286,8 @@ Builder addCustomCondition(ConditionV4Type type, String field, String value) {
* Policy document
*/
public static final class PostPolicyV4Document {
- private String expiration;
- private PostConditionsV4 conditions;
+ private final String expiration;
+ private final PostConditionsV4 conditions;
private PostPolicyV4Document(String expiration, PostConditionsV4 conditions) {
this.expiration = expiration;
@@ -363,9 +379,9 @@ public enum ConditionV4Type {
* Policy document
*/
static final class ConditionV4 {
- ConditionV4Type type;
- String operand1;
- String operand2;
+ final ConditionV4Type type;
+ final String operand1;
+ final String operand2;
private ConditionV4(ConditionV4Type type, String operand1, String operand2) {
this.type = type;