forked from aws/aws-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathS3VersionSummary.java
More file actions
337 lines (302 loc) · 10.3 KB
/
S3VersionSummary.java
File metadata and controls
337 lines (302 loc) · 10.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
/*
* Copyright 2010-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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 com.amazonaws.services.s3.model;
import java.util.Date;
import com.amazonaws.services.s3.internal.Constants;
/**
* Contains the summary of a version stored in an Amazon S3 bucket.
* This object doesn't contain the
* version's full metadata or any of its contents.
*
* @see S3Object
* @see S3ObjectSummary
*/
public class S3VersionSummary {
/** The name of the bucket in which this version is stored */
protected String bucketName;
/** The key under which this version is stored */
private String key;
/** The version ID uniquely identifying this version of an object */
private String versionId;
/** True if this is the latest version of the associated object */
private boolean isLatest;
/** The date, according to Amazon S3, when this version was last modified */
private Date lastModified;
/**
* The owner of this version of the associated object - can be null if the
* requester doesn't have permission to view object ownership information
*/
private Owner owner;
/** Hex encoded MD5 hash of this version's contents, as computed by Amazon S3 */
private String eTag;
/** The size of this version, in bytes */
private long size;
/** The class of storage used by Amazon S3 to store this version */
private String storageClass;
/** True if this object represents a delete marker */
private boolean isDeleteMarker;
/**
* Gets the name of the Amazon S3 bucket in which this version is stored.
*
* @return The name of the Amazon S3 bucket in which this version is stored.
*
* @see S3VersionSummary#setBucketName(String)
*/
public String getBucketName() {
return bucketName;
}
/**
* Sets the name of the Amazon S3 bucket in which this version is stored.
*
* @param bucketName
* The name of the Amazon S3 bucket in which this version is
* stored.
*
* @see S3VersionSummary#getBucketName()
*/
public void setBucketName(String bucketName) {
this.bucketName = bucketName;
}
/**
* Gets the key under which this version is stored in Amazon S3.
*
* @return The key under which this version is stored in Amazon S3.
*
* @see S3VersionSummary#setKey(String)
*/
public String getKey() {
return key;
}
/**
* Sets the key under which this version is stored in Amazon S3.
*
* @param key
* The key under which this version is stored in Amazon S3.
*
* @see S3VersionSummary#getKey()
*/
public void setKey(String key) {
this.key = key;
}
/**
* Gets the version ID which uniquely identifies this version of an
* object.
* <p>
* Objects created before versioning was enabled or when versioning is
* suspended will be given the default/null version ID (see
* {@link Constants#NULL_VERSION_ID}). Note that the
* {@link Constants#NULL_VERSION_ID} is a valid version ID and is not the
* same as not having a version ID.
* </p>
*
* @return The version ID which uniquely identifies this version of an
* object.
*
* @see S3VersionSummary#setVersionId(String)
*/
public String getVersionId() {
return versionId;
}
/**
* Sets the version ID which uniquely identifies this version of an object.
*
* @param id
* The version ID which uniquely identifies this version of an
* object.
*
* @see S3VersionSummary#getVersionId()
*/
public void setVersionId(String id) {
this.versionId = id;
}
/**
* Returns whether or not this version is the latest version
* for the associated object.
*
* @return The value <code>true</code> if this version is the
* latest version for the associated object; returns the value
* <code>false</code> if otherwise.
*/
public boolean isLatest() {
return this.isLatest;
}
/**
* For internal use only.
* Sets whether this version is the latest version for the associated
* object. This method is intended to be used only by the client internals
* and developers shouldn't need to use it.
*
* @param isLatest
* True if this version represents the latest version for the
* associated object in S3.
*/
public void setIsLatest(boolean isLatest) {
this.isLatest = isLatest;
}
/**
* Gets the date according to Amazon S3 at which this version was last
* modified.
*
* @return The date according to Amazon S3 at which this version was last
* modified.
*
* @see S3VersionSummary#setLastModified(Date)
*/
public Date getLastModified() {
return lastModified;
}
/**
* Sets the date according to Amazon S3 at which this version was last
* modified.
*
* @param lastModified
* The date according to Amazon S3 at which this version was
* last modified.
*
* @see S3VersionSummary#getLastModified()
*/
public void setLastModified(Date lastModified) {
this.lastModified = lastModified;
}
/**
* Gets the owner of this version. Returns <code>null</code>
* if the requester doesn't have
* {@link Permission#ReadAcp} permission for this version or owns the bucket
* in which it resides.
*
* @return The owner of this version. Returns <code>null</code>
* if the requester doesn't have
* permission to see object ownership for this version.
*
* @see S3VersionSummary#setOwner(Owner)
*/
public Owner getOwner() {
return owner;
}
/**
* For internal use only.
* Sets the owner of this version. This method is intended to be used only
* by the client internals and developers shouldn't need to use it.
*
* @param owner
* The owner of this version.
*
* @see S3VersionSummary#getOwner()
*/
public void setOwner(Owner owner) {
this.owner = owner;
}
/**
* Returns whether or not this version represents a delete marker.
* <p>
* Delete markers are special types of versions that have no data associated
* with them. When deleting a versioned object in Amazon S3 without specifying
* an explicit version ID, a new delete marker is created as the latest
* version of that object to mark that the object was deleted.
* This occurs even though
* the previous versions still exist in Amazon S3.
* </p>
* <p>
* Delete markers have no data associated with them and therefore have no
* associated ACL, size or storage class. Only requesters with read access
* to a bucket can learn of their existence by listing the versions in a
* bucket.
* </p>
*
* @return The value <code>true</code> if this version represents a delete marker.
* Returns the value <code>false</code> if otherwise.
*/
public boolean isDeleteMarker() {
return isDeleteMarker;
}
/**
* Intended for internal use only in the Amazon S3 client code. Sets the value of
* the <code>isDeleteMarker</code> property to record if this is a delete marker or not.
*
* @param isDeleteMarker
* Specify <code>true<code> if this version summary represents a delete marker,
* otherwise <code>false<code> if it is a regular version summary.
*/
public void setIsDeleteMarker(boolean isDeleteMarker) {
this.isDeleteMarker = isDeleteMarker;
}
/**
* Gets the hex encoded 128-bit MD5 hash of this version's contents as
* computed by Amazon S3.
*
* @return The hex encoded 128-bit MD5 hash of this version's contents as
* computed by Amazon S3.
*
* @see S3VersionSummary#setETag(String)
*/
public String getETag() {
return eTag;
}
/**
* Sets the hex encoded 128-bit MD5 hash of this version's contents as
* computed by Amazon S3.
*
* @param eTag
* The hex encoded 128-bit MD5 hash of this version's contents
* as computed by Amazon S3.
*
* @see S3VersionSummary#getETag()
*/
public void setETag(String eTag) {
this.eTag = eTag;
}
/**
* Gets the storage class used by Amazon S3 for this version.
*
* @return The storage class used by Amazon S3 for this version.
*
* @see S3VersionSummary#setStorageClass(String)
*/
public String getStorageClass() {
return storageClass;
}
/**
* Sets the storage class used by Amazon S3 for this version.
*
* @param storageClass
* The storage class used by Amazon S3 for this version.
*
* @see S3VersionSummary#getStorageClass()
*/
public void setStorageClass(String storageClass) {
this.storageClass = storageClass;
}
/**
* Gets the size of this version in bytes.
*
* @return The size of this version in bytes.
*
* @see S3VersionSummary#setSize(long)
*/
public long getSize() {
return size;
}
/**
* Sets the size of this version in bytes.
*
* @param size
* The size of this version in bytes.
*
* @see S3VersionSummary#getSize()
*/
public void setSize(long size) {
this.size = size;
}
}