root / asi-http-request-with-pithos / Classes / Pithos / ASIPithosObjectRequest.m @ 32017ec6
History | View | Annotate | Download (101.9 kB)
1 | be116d22 | Miltiadis Vasilakis | // ASIPithosObjectRequest.m |
---|---|---|---|
2 | be116d22 | Miltiadis Vasilakis | // Based on ASICloudFilesObjectRequest.m |
3 | be116d22 | Miltiadis Vasilakis | // |
4 | 2fb7b1fc | Miltiadis Vasilakis | // Copyright 2011-2012 GRNET S.A. All rights reserved. |
5 | be116d22 | Miltiadis Vasilakis | // |
6 | be116d22 | Miltiadis Vasilakis | // Redistribution and use in source and binary forms, with or |
7 | be116d22 | Miltiadis Vasilakis | // without modification, are permitted provided that the following |
8 | be116d22 | Miltiadis Vasilakis | // conditions are met: |
9 | be116d22 | Miltiadis Vasilakis | // |
10 | be116d22 | Miltiadis Vasilakis | // 1. Redistributions of source code must retain the above |
11 | be116d22 | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
12 | be116d22 | Miltiadis Vasilakis | // disclaimer. |
13 | be116d22 | Miltiadis Vasilakis | // |
14 | be116d22 | Miltiadis Vasilakis | // 2. Redistributions in binary form must reproduce the above |
15 | be116d22 | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
16 | be116d22 | Miltiadis Vasilakis | // disclaimer in the documentation and/or other materials |
17 | be116d22 | Miltiadis Vasilakis | // provided with the distribution. |
18 | be116d22 | Miltiadis Vasilakis | // |
19 | be116d22 | Miltiadis Vasilakis | // THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
20 | be116d22 | Miltiadis Vasilakis | // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
21 | be116d22 | Miltiadis Vasilakis | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
22 | be116d22 | Miltiadis Vasilakis | // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
23 | be116d22 | Miltiadis Vasilakis | // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
24 | be116d22 | Miltiadis Vasilakis | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
25 | be116d22 | Miltiadis Vasilakis | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
26 | be116d22 | Miltiadis Vasilakis | // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
27 | be116d22 | Miltiadis Vasilakis | // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
28 | be116d22 | Miltiadis Vasilakis | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
29 | be116d22 | Miltiadis Vasilakis | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
30 | be116d22 | Miltiadis Vasilakis | // POSSIBILITY OF SUCH DAMAGE. |
31 | be116d22 | Miltiadis Vasilakis | // |
32 | be116d22 | Miltiadis Vasilakis | // The views and conclusions contained in the software and |
33 | be116d22 | Miltiadis Vasilakis | // documentation are those of the authors and should not be |
34 | be116d22 | Miltiadis Vasilakis | // interpreted as representing official policies, either expressed |
35 | be116d22 | Miltiadis Vasilakis | // or implied, of GRNET S.A. |
36 | be116d22 | Miltiadis Vasilakis | |
37 | be116d22 | Miltiadis Vasilakis | #import "ASIPithosObjectRequest.h" |
38 | 2fb7b1fc | Miltiadis Vasilakis | #import "ASIPithos.h" |
39 | be116d22 | Miltiadis Vasilakis | #import "ASIPithosObject.h" |
40 | be116d22 | Miltiadis Vasilakis | |
41 | be116d22 | Miltiadis Vasilakis | @interface ASIPithosObjectRequest (Private) |
42 | be116d22 | Miltiadis Vasilakis | - (void)parseXMLData; |
43 | be116d22 | Miltiadis Vasilakis | - (void)prepareObjectRequestWithETag:(NSString *)eTag |
44 | be116d22 | Miltiadis Vasilakis | contentType:(NSString *)contentType |
45 | be116d22 | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
46 | be116d22 | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
47 | be116d22 | Miltiadis Vasilakis | manifest:(NSString *)manifest |
48 | be116d22 | Miltiadis Vasilakis | sharing:(NSString *)sharing |
49 | be116d22 | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
50 | be116d22 | Miltiadis Vasilakis | metadata:(NSDictionary *)newMetadata; |
51 | be116d22 | Miltiadis Vasilakis | @end |
52 | be116d22 | Miltiadis Vasilakis | |
53 | be116d22 | Miltiadis Vasilakis | @implementation ASIPithosObjectRequest |
54 | be116d22 | Miltiadis Vasilakis | @synthesize objectRequestType; |
55 | be116d22 | Miltiadis Vasilakis | @synthesize containerName, objectName; |
56 | 6ba383d0 | Miltiadis Vasilakis | @synthesize currentObject; |
57 | be116d22 | Miltiadis Vasilakis | |
58 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
59 | be116d22 | Miltiadis Vasilakis | #pragma mark Constructors |
60 | be116d22 | Miltiadis Vasilakis | |
61 | 2fb7b1fc | Miltiadis Vasilakis | + (id)storageRequestWithMethod:(NSString *)method pithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
62 | 2fb7b1fc | Miltiadis Vasilakis | queryString:(NSString *)queryString { |
63 | 48e53760 | Miltiadis Vasilakis | NSString *urlString = [NSString stringWithFormat:@"%@/%@/%@", |
64 | 2fb7b1fc | Miltiadis Vasilakis | pithos.storageURL, |
65 | 6d3af6ef | Miltiadis Vasilakis | [self encodeToPercentEscape:containerName], |
66 | 6d3af6ef | Miltiadis Vasilakis | [((NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, |
67 | 6d3af6ef | Miltiadis Vasilakis | (CFStringRef)objectName, |
68 | 6d3af6ef | Miltiadis Vasilakis | NULL, |
69 | 6d3af6ef | Miltiadis Vasilakis | (CFStringRef)@"!*'();:@&=+$,?%#[]", |
70 | 6d3af6ef | Miltiadis Vasilakis | kCFStringEncodingUTF8)) autorelease]]; |
71 | be116d22 | Miltiadis Vasilakis | if (queryString) |
72 | be116d22 | Miltiadis Vasilakis | urlString = [urlString stringByAppendingString:queryString]; |
73 | be116d22 | Miltiadis Vasilakis | |
74 | be116d22 | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [[[self alloc] initWithURL:[NSURL URLWithString:urlString]] autorelease]; |
75 | be116d22 | Miltiadis Vasilakis | [request setRequestMethod:method]; |
76 | 2fb7b1fc | Miltiadis Vasilakis | [request addRequestHeader:@"X-Auth-Token" value:pithos.authToken]; |
77 | be116d22 | Miltiadis Vasilakis | request.containerName = containerName; |
78 | be116d22 | Miltiadis Vasilakis | request.objectName = objectName; |
79 | be116d22 | Miltiadis Vasilakis | return request; |
80 | be116d22 | Miltiadis Vasilakis | } |
81 | be116d22 | Miltiadis Vasilakis | |
82 | 2fb7b1fc | Miltiadis Vasilakis | + (id)storageRequestWithMethod:(NSString *)method pithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
83 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:method pithos:pithos containerName:containerName objectName:(NSString *)objectName queryString:nil]; |
84 | be116d22 | Miltiadis Vasilakis | } |
85 | be116d22 | Miltiadis Vasilakis | |
86 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
87 | be116d22 | Miltiadis Vasilakis | #pragma mark Memory Management |
88 | be116d22 | Miltiadis Vasilakis | |
89 | be116d22 | Miltiadis Vasilakis | - (void)dealloc { |
90 | be116d22 | Miltiadis Vasilakis | [currentObject release]; |
91 | be116d22 | Miltiadis Vasilakis | [versions release]; |
92 | be116d22 | Miltiadis Vasilakis | [hashes release]; |
93 | be116d22 | Miltiadis Vasilakis | [blockHash release]; |
94 | be116d22 | Miltiadis Vasilakis | [objectName release]; |
95 | be116d22 | Miltiadis Vasilakis | [containerName release]; |
96 | be116d22 | Miltiadis Vasilakis | [super dealloc]; |
97 | be116d22 | Miltiadis Vasilakis | } |
98 | be116d22 | Miltiadis Vasilakis | |
99 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
100 | be116d22 | Miltiadis Vasilakis | #pragma mark Internal |
101 | be116d22 | Miltiadis Vasilakis | |
102 | be116d22 | Miltiadis Vasilakis | - (void)parseXMLData { |
103 | 2fb7b1fc | Miltiadis Vasilakis | if ((objectRequestType == ASIPithosObjectRequestHashmap)|| (objectRequestType == ASIPithosObjectRequestHashmapWrite)) { |
104 | be116d22 | Miltiadis Vasilakis | hashes = [[NSMutableArray alloc] init]; |
105 | be116d22 | Miltiadis Vasilakis | } else if (objectRequestType == ASIPithosObjectRequestVersions) { |
106 | be116d22 | Miltiadis Vasilakis | versions = [[NSMutableArray alloc] init]; |
107 | be116d22 | Miltiadis Vasilakis | } |
108 | be116d22 | Miltiadis Vasilakis | |
109 | be116d22 | Miltiadis Vasilakis | NSXMLParser *parser = [[[NSXMLParser alloc] initWithData:[self responseData]] autorelease]; |
110 | be116d22 | Miltiadis Vasilakis | [parser setDelegate:self]; |
111 | be116d22 | Miltiadis Vasilakis | [parser setShouldProcessNamespaces:NO]; |
112 | be116d22 | Miltiadis Vasilakis | [parser setShouldReportNamespacePrefixes:NO]; |
113 | be116d22 | Miltiadis Vasilakis | [parser setShouldResolveExternalEntities:NO]; |
114 | be116d22 | Miltiadis Vasilakis | [parser parse]; |
115 | be116d22 | Miltiadis Vasilakis | } |
116 | be116d22 | Miltiadis Vasilakis | |
117 | be116d22 | Miltiadis Vasilakis | - (void)prepareObjectRequestWithETag:(NSString *)eTag |
118 | be116d22 | Miltiadis Vasilakis | contentType:(NSString *)contentType |
119 | be116d22 | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
120 | be116d22 | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
121 | be116d22 | Miltiadis Vasilakis | manifest:(NSString *)manifest |
122 | be116d22 | Miltiadis Vasilakis | sharing:(NSString *)sharing |
123 | be116d22 | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
124 | be116d22 | Miltiadis Vasilakis | metadata:(NSDictionary *)newMetadata { |
125 | be116d22 | Miltiadis Vasilakis | if (eTag) |
126 | be116d22 | Miltiadis Vasilakis | [self addRequestHeader:@"ETag" value:eTag]; |
127 | be116d22 | Miltiadis Vasilakis | if (contentType) |
128 | be116d22 | Miltiadis Vasilakis | [self addRequestHeader:@"Content-Type" value:contentType]; |
129 | be116d22 | Miltiadis Vasilakis | if (contentEncoding) |
130 | 6d3af6ef | Miltiadis Vasilakis | [self addRequestHeader:@"Content-Encoding" value:[self encodeToPercentEscape:contentEncoding]]; |
131 | be116d22 | Miltiadis Vasilakis | if (contentDisposition) |
132 | 6d3af6ef | Miltiadis Vasilakis | [self addRequestHeader:@"Content-Disposition" value:[self encodeToPercentEscape:contentDisposition]]; |
133 | be116d22 | Miltiadis Vasilakis | if (manifest) |
134 | 6d3af6ef | Miltiadis Vasilakis | [self addRequestHeader:@"X-Object-Manifest" value:[self encodeToPercentEscape:manifest]]; |
135 | be116d22 | Miltiadis Vasilakis | if (sharing) |
136 | 6d3af6ef | Miltiadis Vasilakis | [self addRequestHeader:@"X-Object-Sharing" value:[self encodeToPercentEscape:sharing]]; |
137 | be116d22 | Miltiadis Vasilakis | if (isPublic == ASIPithosObjectRequestPublicTrue) { |
138 | 662d5d9a | Miltiadis Vasilakis | [self addRequestHeader:@"X-Object-Public" value:@"true"]; |
139 | be116d22 | Miltiadis Vasilakis | } else if (isPublic == ASIPithosObjectRequestPublicFalse) { |
140 | 662d5d9a | Miltiadis Vasilakis | [self addRequestHeader:@"X-Object-Public" value:@"false"]; |
141 | be116d22 | Miltiadis Vasilakis | } |
142 | be116d22 | Miltiadis Vasilakis | |
143 | be116d22 | Miltiadis Vasilakis | if (newMetadata) { |
144 | be116d22 | Miltiadis Vasilakis | for (NSString *key in [newMetadata keyEnumerator]) { |
145 | 6d3af6ef | Miltiadis Vasilakis | [self addRequestHeader:[self encodeToPercentEscape:[NSString stringWithFormat:@"X-Object-Meta-%@", key]] |
146 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[newMetadata objectForKey:key]]]; |
147 | be116d22 | Miltiadis Vasilakis | } |
148 | be116d22 | Miltiadis Vasilakis | } |
149 | be116d22 | Miltiadis Vasilakis | } |
150 | be116d22 | Miltiadis Vasilakis | |
151 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
152 | be116d22 | Miltiadis Vasilakis | #pragma mark HEAD |
153 | be116d22 | Miltiadis Vasilakis | |
154 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object |
155 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
156 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"HEAD" pithos:pithos containerName:containerName objectName:objectName]; |
157 | be116d22 | Miltiadis Vasilakis | } |
158 | be116d22 | Miltiadis Vasilakis | |
159 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object?[version=version] |
160 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
161 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version { |
162 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
163 | be116d22 | Miltiadis Vasilakis | if (version) |
164 | be116d22 | Miltiadis Vasilakis | queryString = [NSString stringWithFormat:@"?version=%@", version]; |
165 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"HEAD" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
166 | be116d22 | Miltiadis Vasilakis | } |
167 | be116d22 | Miltiadis Vasilakis | |
168 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object?[version=version] [If-Match] |
169 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
170 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
171 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
172 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
173 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
174 | be116d22 | Miltiadis Vasilakis | return request; |
175 | be116d22 | Miltiadis Vasilakis | } |
176 | be116d22 | Miltiadis Vasilakis | |
177 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object?[version=version] [If-None-Match] |
178 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
179 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
180 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
181 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
182 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
183 | be116d22 | Miltiadis Vasilakis | return request; |
184 | be116d22 | Miltiadis Vasilakis | } |
185 | be116d22 | Miltiadis Vasilakis | |
186 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object?[version=version] [If-Modified-Since] |
187 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
188 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
189 | 2fb7b1fc | Miltiadis Vasilakis | ifModifiedSince:(NSDate *)sinceTimestamp { |
190 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
191 | be116d22 | Miltiadis Vasilakis | [request addRequestIfModifiedSinceHeader:sinceTimestamp]; |
192 | be116d22 | Miltiadis Vasilakis | return request; |
193 | be116d22 | Miltiadis Vasilakis | } |
194 | be116d22 | Miltiadis Vasilakis | |
195 | be116d22 | Miltiadis Vasilakis | // HEAD storageURL/container/object?[version=version] [If-Unmodified-Since] |
196 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
197 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
198 | 2fb7b1fc | Miltiadis Vasilakis | ifUnmodifiedSince:(NSDate *)sinceTimestamp { |
199 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
200 | be116d22 | Miltiadis Vasilakis | [request addRequestIfUnmodifiedSinceHeader:sinceTimestamp]; |
201 | be116d22 | Miltiadis Vasilakis | return request; |
202 | be116d22 | Miltiadis Vasilakis | } |
203 | be116d22 | Miltiadis Vasilakis | |
204 | be116d22 | Miltiadis Vasilakis | - (NSString *)eTag { |
205 | be116d22 | Miltiadis Vasilakis | // Etag, instead of ETag, because CFNetwork changes it |
206 | be116d22 | Miltiadis Vasilakis | // http://groups.google.com/group/asihttprequest/browse_thread/thread/7119f1a0ccf26fdf |
207 | be116d22 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"Etag"]; |
208 | be116d22 | Miltiadis Vasilakis | } |
209 | be116d22 | Miltiadis Vasilakis | |
210 | 40db2cf7 | Miltiadis Vasilakis | - (NSString *)objectHash { |
211 | 40db2cf7 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-Hash"]; |
212 | 40db2cf7 | Miltiadis Vasilakis | } |
213 | 40db2cf7 | Miltiadis Vasilakis | |
214 | 30650f5a | Miltiadis Vasilakis | - (NSString *)UUID { |
215 | 30650f5a | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-UUID"]; |
216 | 30650f5a | Miltiadis Vasilakis | } |
217 | 30650f5a | Miltiadis Vasilakis | |
218 | d7314149 | Miltiadis Vasilakis | - (NSUInteger)objectContentLength { |
219 | 78355da3 | Miltiadis Vasilakis | NSString *objectContentLengthString = [[self responseHeaders] objectForKey:@"Content-Length"]; |
220 | 78355da3 | Miltiadis Vasilakis | if (objectContentLengthString) |
221 | 78355da3 | Miltiadis Vasilakis | return [objectContentLengthString intValue]; |
222 | 78355da3 | Miltiadis Vasilakis | return 0; |
223 | be116d22 | Miltiadis Vasilakis | } |
224 | be116d22 | Miltiadis Vasilakis | |
225 | be116d22 | Miltiadis Vasilakis | - (NSString *)contentType { |
226 | be116d22 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"Content-Type"]; |
227 | be116d22 | Miltiadis Vasilakis | } |
228 | be116d22 | Miltiadis Vasilakis | |
229 | be116d22 | Miltiadis Vasilakis | - (NSDate *)lastModified { |
230 | be116d22 | Miltiadis Vasilakis | NSString *lastModifiedString = [[self responseHeaders] objectForKey:@"Last-Modified"]; |
231 | be116d22 | Miltiadis Vasilakis | if (lastModifiedString) |
232 | be116d22 | Miltiadis Vasilakis | return [[self dateFormatterWithFormatId:1] dateFromString:lastModifiedString]; |
233 | be116d22 | Miltiadis Vasilakis | return nil; |
234 | be116d22 | Miltiadis Vasilakis | } |
235 | be116d22 | Miltiadis Vasilakis | |
236 | be116d22 | Miltiadis Vasilakis | - (NSString *)contentEncoding { |
237 | 6d3af6ef | Miltiadis Vasilakis | return [self decodeFromPercentEscape:[[self responseHeaders] objectForKey:@"Content-Encoding"]]; |
238 | be116d22 | Miltiadis Vasilakis | } |
239 | be116d22 | Miltiadis Vasilakis | |
240 | be116d22 | Miltiadis Vasilakis | - (NSString *)contentDisposition { |
241 | 6d3af6ef | Miltiadis Vasilakis | return [self decodeFromPercentEscape:[[self responseHeaders] objectForKey:@"Content-Disposition"]]; |
242 | be116d22 | Miltiadis Vasilakis | } |
243 | be116d22 | Miltiadis Vasilakis | |
244 | be116d22 | Miltiadis Vasilakis | - (NSString *)version { |
245 | be116d22 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-Version"]; |
246 | be116d22 | Miltiadis Vasilakis | } |
247 | be116d22 | Miltiadis Vasilakis | |
248 | be116d22 | Miltiadis Vasilakis | - (NSDate *)versionTimestamp { |
249 | be116d22 | Miltiadis Vasilakis | NSString *versionTimestampString = [[self responseHeaders] objectForKey:@"X-Object-Version-Timestamp"]; |
250 | be116d22 | Miltiadis Vasilakis | if (versionTimestampString) |
251 | be116d22 | Miltiadis Vasilakis | return [[self dateFormatterWithFormatId:1] dateFromString:versionTimestampString]; |
252 | be116d22 | Miltiadis Vasilakis | return nil; |
253 | be116d22 | Miltiadis Vasilakis | } |
254 | be116d22 | Miltiadis Vasilakis | |
255 | be116d22 | Miltiadis Vasilakis | - (NSString *)modifiedBy { |
256 | be116d22 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-Modified-By"]; |
257 | be116d22 | Miltiadis Vasilakis | } |
258 | be116d22 | Miltiadis Vasilakis | |
259 | be116d22 | Miltiadis Vasilakis | - (NSString *)manifest { |
260 | 6d3af6ef | Miltiadis Vasilakis | return [self decodeFromPercentEscape:[[self responseHeaders] objectForKey:@"X-Object-Manifest"]]; |
261 | be116d22 | Miltiadis Vasilakis | } |
262 | be116d22 | Miltiadis Vasilakis | |
263 | be116d22 | Miltiadis Vasilakis | - (NSString *)sharing { |
264 | 6d3af6ef | Miltiadis Vasilakis | return [self decodeFromPercentEscape:[[self responseHeaders] objectForKey:@"X-Object-Sharing"]]; |
265 | be116d22 | Miltiadis Vasilakis | } |
266 | be116d22 | Miltiadis Vasilakis | |
267 | be116d22 | Miltiadis Vasilakis | - (NSString *)sharedBy { |
268 | 6d3af6ef | Miltiadis Vasilakis | return [self decodeFromPercentEscape:[[self responseHeaders] objectForKey:@"X-Object-Shared-By"]]; |
269 | be116d22 | Miltiadis Vasilakis | } |
270 | be116d22 | Miltiadis Vasilakis | |
271 | be116d22 | Miltiadis Vasilakis | - (NSString *)publicURI { |
272 | be116d22 | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-Public"]; |
273 | be116d22 | Miltiadis Vasilakis | } |
274 | be116d22 | Miltiadis Vasilakis | |
275 | be116d22 | Miltiadis Vasilakis | - (NSDictionary *)metadata { |
276 | be116d22 | Miltiadis Vasilakis | if (metadata == nil) { |
277 | be116d22 | Miltiadis Vasilakis | metadata = [self getHeadersDictionaryForPrefix:@"X-Object-Meta-"]; |
278 | be116d22 | Miltiadis Vasilakis | [metadata retain]; |
279 | be116d22 | Miltiadis Vasilakis | } |
280 | be116d22 | Miltiadis Vasilakis | return metadata; |
281 | be116d22 | Miltiadis Vasilakis | } |
282 | be116d22 | Miltiadis Vasilakis | |
283 | 6908619b | Miltiadis Vasilakis | - (NSString *)allowedTo { |
284 | 6908619b | Miltiadis Vasilakis | return [[self responseHeaders] objectForKey:@"X-Object-Allowed-To"]; |
285 | 6908619b | Miltiadis Vasilakis | } |
286 | 6908619b | Miltiadis Vasilakis | |
287 | be116d22 | Miltiadis Vasilakis | - (ASIPithosObject *)object { |
288 | be116d22 | Miltiadis Vasilakis | ASIPithosObject *object = [ASIPithosObject object]; |
289 | be116d22 | Miltiadis Vasilakis | object.name = objectName; |
290 | be116d22 | Miltiadis Vasilakis | object.hash = [self eTag]; |
291 | 2f816d2a | Miltiadis Vasilakis | object.objectHash = [self objectHash]; |
292 | 2f816d2a | Miltiadis Vasilakis | object.UUID = [self UUID]; |
293 | be116d22 | Miltiadis Vasilakis | object.contentType = [self contentType]; |
294 | be116d22 | Miltiadis Vasilakis | object.contentEncoding = [self contentEncoding]; |
295 | be116d22 | Miltiadis Vasilakis | object.contentDisposition = [self contentDisposition]; |
296 | be116d22 | Miltiadis Vasilakis | object.lastModified = [self lastModified]; |
297 | be116d22 | Miltiadis Vasilakis | object.version = [self version]; |
298 | be116d22 | Miltiadis Vasilakis | object.versionTimestamp = [self versionTimestamp]; |
299 | be116d22 | Miltiadis Vasilakis | object.modifiedBy = [self modifiedBy]; |
300 | be116d22 | Miltiadis Vasilakis | object.manifest = [self manifest]; |
301 | be116d22 | Miltiadis Vasilakis | object.sharing = [self sharing]; |
302 | be116d22 | Miltiadis Vasilakis | object.sharedBy = [self sharedBy]; |
303 | be116d22 | Miltiadis Vasilakis | object.publicURI = [self publicURI]; |
304 | be116d22 | Miltiadis Vasilakis | object.metadata = (NSMutableDictionary *)[self metadata]; |
305 | 78624c54 | Miltiadis Vasilakis | object.allowedTo = [self allowedTo]; |
306 | be116d22 | Miltiadis Vasilakis | |
307 | be116d22 | Miltiadis Vasilakis | if (objectRequestType == ASIPithosObjectRequestData) { |
308 | d7314149 | Miltiadis Vasilakis | object.bytes = [self objectContentLength]; |
309 | be116d22 | Miltiadis Vasilakis | object.data = [self responseData]; |
310 | be116d22 | Miltiadis Vasilakis | } else if (objectRequestType == ASIPithosObjectRequestHashmap) { |
311 | be116d22 | Miltiadis Vasilakis | object.bytes = [self bytes]; |
312 | be116d22 | Miltiadis Vasilakis | } |
313 | be116d22 | Miltiadis Vasilakis | |
314 | be116d22 | Miltiadis Vasilakis | return object; |
315 | be116d22 | Miltiadis Vasilakis | } |
316 | be116d22 | Miltiadis Vasilakis | |
317 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
318 | be116d22 | Miltiadis Vasilakis | #pragma mark GET |
319 | be116d22 | Miltiadis Vasilakis | |
320 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object |
321 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
322 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"GET" pithos:pithos containerName:containerName objectName:objectName]; |
323 | be116d22 | Miltiadis Vasilakis | } |
324 | be116d22 | Miltiadis Vasilakis | |
325 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] |
326 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
327 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version { |
328 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
329 | be116d22 | Miltiadis Vasilakis | if (version) |
330 | be116d22 | Miltiadis Vasilakis | queryString = [NSString stringWithFormat:@"?version=%@", version]; |
331 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"GET" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
332 | be116d22 | Miltiadis Vasilakis | } |
333 | be116d22 | Miltiadis Vasilakis | |
334 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [If-Match] |
335 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
336 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
337 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
338 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
339 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
340 | be116d22 | Miltiadis Vasilakis | return request; |
341 | be116d22 | Miltiadis Vasilakis | } |
342 | be116d22 | Miltiadis Vasilakis | |
343 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [If-None-Match] |
344 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
345 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
346 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
347 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
348 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
349 | be116d22 | Miltiadis Vasilakis | return request; |
350 | be116d22 | Miltiadis Vasilakis | } |
351 | be116d22 | Miltiadis Vasilakis | |
352 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [If-Modified-Since] |
353 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
354 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
355 | 2fb7b1fc | Miltiadis Vasilakis | ifModifiedSince:(NSDate *)sinceTimestamp { |
356 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
357 | be116d22 | Miltiadis Vasilakis | [request addRequestIfModifiedSinceHeader:sinceTimestamp]; |
358 | be116d22 | Miltiadis Vasilakis | return request; |
359 | be116d22 | Miltiadis Vasilakis | } |
360 | be116d22 | Miltiadis Vasilakis | |
361 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [If-Unmodified-Since] |
362 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
363 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
364 | 2fb7b1fc | Miltiadis Vasilakis | ifUnmodifiedSince:(NSDate *)sinceTimestamp { |
365 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
366 | be116d22 | Miltiadis Vasilakis | [request addRequestIfUnmodifiedSinceHeader:sinceTimestamp]; |
367 | be116d22 | Miltiadis Vasilakis | return request; |
368 | be116d22 | Miltiadis Vasilakis | } |
369 | be116d22 | Miltiadis Vasilakis | |
370 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [Range [If-Range]] |
371 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
372 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
373 | 2fb7b1fc | Miltiadis Vasilakis | range:(NSString *)rangeString { |
374 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
375 | be116d22 | Miltiadis Vasilakis | [request addRequestRangeHeader:rangeString]; |
376 | be116d22 | Miltiadis Vasilakis | return request; |
377 | be116d22 | Miltiadis Vasilakis | } |
378 | be116d22 | Miltiadis Vasilakis | |
379 | 0a4b9bd3 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [Range [If-Range]] |
380 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
381 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
382 | 2fb7b1fc | Miltiadis Vasilakis | range:(NSString *)rangeString |
383 | 2fb7b1fc | Miltiadis Vasilakis | ifRangeETag:(NSString *)rangeETag { |
384 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
385 | be116d22 | Miltiadis Vasilakis | [request addRequestRangeHeader:rangeString ifRangeETag:rangeETag]; |
386 | be116d22 | Miltiadis Vasilakis | return request; |
387 | be116d22 | Miltiadis Vasilakis | } |
388 | be116d22 | Miltiadis Vasilakis | |
389 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
390 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
391 | 2fb7b1fc | Miltiadis Vasilakis | range:(NSString *)rangeString |
392 | 2fb7b1fc | Miltiadis Vasilakis | ifRangeTimestamp:(NSDate *)rangeTimestamp { |
393 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
394 | be116d22 | Miltiadis Vasilakis | [request addRequestRangeHeader:rangeString ifRangeTimestamp:rangeTimestamp]; |
395 | be116d22 | Miltiadis Vasilakis | return request; |
396 | be116d22 | Miltiadis Vasilakis | } |
397 | be116d22 | Miltiadis Vasilakis | |
398 | 0a4b9bd3 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [Range] [If-Match] |
399 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
400 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
401 | 2fb7b1fc | Miltiadis Vasilakis | range:(NSString *)rangeString |
402 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
403 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
404 | 0a4b9bd3 | Miltiadis Vasilakis | [request addRequestRangeHeader:rangeString]; |
405 | 0a4b9bd3 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
406 | 0a4b9bd3 | Miltiadis Vasilakis | return request; |
407 | 0a4b9bd3 | Miltiadis Vasilakis | } |
408 | 0a4b9bd3 | Miltiadis Vasilakis | |
409 | 0a4b9bd3 | Miltiadis Vasilakis | // GET storageURL/container/object?[version=version] [Range] [If-None-Match] |
410 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
411 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
412 | 2fb7b1fc | Miltiadis Vasilakis | range:(NSString *)rangeString |
413 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
414 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectDataRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
415 | 0a4b9bd3 | Miltiadis Vasilakis | [request addRequestRangeHeader:rangeString]; |
416 | 0a4b9bd3 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
417 | 0a4b9bd3 | Miltiadis Vasilakis | return request; |
418 | 0a4b9bd3 | Miltiadis Vasilakis | } |
419 | 0a4b9bd3 | Miltiadis Vasilakis | |
420 | be116d22 | Miltiadis Vasilakis | - (NSData *)data { |
421 | be116d22 | Miltiadis Vasilakis | return [self responseData]; |
422 | be116d22 | Miltiadis Vasilakis | } |
423 | be116d22 | Miltiadis Vasilakis | |
424 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap= |
425 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
426 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"GET" pithos:pithos containerName:containerName objectName:objectName queryString:@"?format=xml&hashmap="]; |
427 | be116d22 | Miltiadis Vasilakis | request.objectRequestType = ASIPithosObjectRequestHashmap; |
428 | be116d22 | Miltiadis Vasilakis | return request; |
429 | be116d22 | Miltiadis Vasilakis | } |
430 | be116d22 | Miltiadis Vasilakis | |
431 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap=[&version=version] |
432 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
433 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version { |
434 | 6908619b | Miltiadis Vasilakis | NSString *queryString = @"?format=xml&hashmap="; |
435 | be116d22 | Miltiadis Vasilakis | if (version) |
436 | be116d22 | Miltiadis Vasilakis | queryString = [queryString stringByAppendingString:[NSString stringWithFormat:@"&version=%@", version]]; |
437 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"GET" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
438 | be116d22 | Miltiadis Vasilakis | request.objectRequestType = ASIPithosObjectRequestHashmap; |
439 | be116d22 | Miltiadis Vasilakis | return request; |
440 | be116d22 | Miltiadis Vasilakis | } |
441 | be116d22 | Miltiadis Vasilakis | |
442 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Match] |
443 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
444 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
445 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
446 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectHashmapRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
447 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
448 | be116d22 | Miltiadis Vasilakis | return request; |
449 | be116d22 | Miltiadis Vasilakis | } |
450 | be116d22 | Miltiadis Vasilakis | |
451 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-NoneMatch] |
452 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
453 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
454 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
455 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectHashmapRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
456 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
457 | be116d22 | Miltiadis Vasilakis | return request; |
458 | be116d22 | Miltiadis Vasilakis | } |
459 | be116d22 | Miltiadis Vasilakis | |
460 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Modified-Since] |
461 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
462 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
463 | 2fb7b1fc | Miltiadis Vasilakis | ifModifiedSince:(NSDate *)sinceTimestamp { |
464 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectHashmapRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
465 | be116d22 | Miltiadis Vasilakis | [request addRequestIfModifiedSinceHeader:sinceTimestamp]; |
466 | be116d22 | Miltiadis Vasilakis | return request; |
467 | be116d22 | Miltiadis Vasilakis | } |
468 | be116d22 | Miltiadis Vasilakis | |
469 | 6908619b | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Unmodified-Since] |
470 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectHashmapRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
471 | 2fb7b1fc | Miltiadis Vasilakis | version:(NSString *)version |
472 | 2fb7b1fc | Miltiadis Vasilakis | ifUnmodifiedSince:(NSDate *)sinceTimestamp { |
473 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectHashmapRequestWithPithos:pithos containerName:containerName objectName:objectName version:version]; |
474 | be116d22 | Miltiadis Vasilakis | [request addRequestIfUnmodifiedSinceHeader:sinceTimestamp]; |
475 | be116d22 | Miltiadis Vasilakis | return request; |
476 | be116d22 | Miltiadis Vasilakis | } |
477 | be116d22 | Miltiadis Vasilakis | |
478 | be116d22 | Miltiadis Vasilakis | - (NSUInteger)blockSize { |
479 | be116d22 | Miltiadis Vasilakis | if (hashes == nil) |
480 | be116d22 | Miltiadis Vasilakis | [self parseXMLData]; |
481 | be116d22 | Miltiadis Vasilakis | return blockSize; |
482 | be116d22 | Miltiadis Vasilakis | } |
483 | be116d22 | Miltiadis Vasilakis | |
484 | be116d22 | Miltiadis Vasilakis | - (NSString *)blockHash { |
485 | be116d22 | Miltiadis Vasilakis | if (hashes == nil) |
486 | be116d22 | Miltiadis Vasilakis | [self parseXMLData]; |
487 | be116d22 | Miltiadis Vasilakis | return blockHash; |
488 | be116d22 | Miltiadis Vasilakis | } |
489 | be116d22 | Miltiadis Vasilakis | |
490 | be116d22 | Miltiadis Vasilakis | - (NSArray *)hashes { |
491 | be116d22 | Miltiadis Vasilakis | if (hashes == nil) |
492 | be116d22 | Miltiadis Vasilakis | [self parseXMLData]; |
493 | be116d22 | Miltiadis Vasilakis | return hashes; |
494 | be116d22 | Miltiadis Vasilakis | } |
495 | be116d22 | Miltiadis Vasilakis | |
496 | be116d22 | Miltiadis Vasilakis | - (NSUInteger)bytes { |
497 | be116d22 | Miltiadis Vasilakis | if (hashes == nil) |
498 | be116d22 | Miltiadis Vasilakis | [self parseXMLData]; |
499 | be116d22 | Miltiadis Vasilakis | return bytes; |
500 | be116d22 | Miltiadis Vasilakis | } |
501 | be116d22 | Miltiadis Vasilakis | |
502 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&version=list |
503 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectVersionsRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
504 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"GET" pithos:pithos containerName:containerName objectName:objectName queryString:@"?format=xml&version=list"]; |
505 | be116d22 | Miltiadis Vasilakis | request.objectRequestType = ASIPithosObjectRequestVersions; |
506 | be116d22 | Miltiadis Vasilakis | return request; |
507 | be116d22 | Miltiadis Vasilakis | } |
508 | be116d22 | Miltiadis Vasilakis | |
509 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&version=list [If-Match] |
510 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectVersionsRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
511 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
512 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectVersionsRequestWithPithos:pithos containerName:containerName objectName:objectName]; |
513 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
514 | be116d22 | Miltiadis Vasilakis | return request; |
515 | be116d22 | Miltiadis Vasilakis | } |
516 | be116d22 | Miltiadis Vasilakis | |
517 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&version=list [If-None-Match] |
518 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectVersionsRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
519 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
520 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectVersionsRequestWithPithos:pithos containerName:containerName objectName:objectName]; |
521 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
522 | be116d22 | Miltiadis Vasilakis | return request; |
523 | be116d22 | Miltiadis Vasilakis | } |
524 | be116d22 | Miltiadis Vasilakis | |
525 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&version=list [If-Modified-Since] |
526 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectVersionsRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
527 | 2fb7b1fc | Miltiadis Vasilakis | ifModifiedSince:(NSDate *)sinceTimestamp { |
528 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectVersionsRequestWithPithos:pithos containerName:containerName objectName:objectName]; |
529 | be116d22 | Miltiadis Vasilakis | [request addRequestIfModifiedSinceHeader:sinceTimestamp]; |
530 | be116d22 | Miltiadis Vasilakis | return request; |
531 | be116d22 | Miltiadis Vasilakis | } |
532 | be116d22 | Miltiadis Vasilakis | |
533 | be116d22 | Miltiadis Vasilakis | // GET storageURL/container/object?format=xml&version=list [If-Unmodified-Since] |
534 | 2fb7b1fc | Miltiadis Vasilakis | + (id)objectVersionsRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
535 | 2fb7b1fc | Miltiadis Vasilakis | ifUnmodifiedSince:(NSDate *)sinceTimestamp { |
536 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self objectVersionsRequestWithPithos:pithos containerName:containerName objectName:objectName]; |
537 | be116d22 | Miltiadis Vasilakis | [request addRequestIfUnmodifiedSinceHeader:sinceTimestamp]; |
538 | be116d22 | Miltiadis Vasilakis | return request; |
539 | be116d22 | Miltiadis Vasilakis | } |
540 | be116d22 | Miltiadis Vasilakis | |
541 | be116d22 | Miltiadis Vasilakis | - (NSArray *)versions { |
542 | be116d22 | Miltiadis Vasilakis | if (versions == nil) |
543 | be116d22 | Miltiadis Vasilakis | [self parseXMLData]; |
544 | be116d22 | Miltiadis Vasilakis | return versions; |
545 | be116d22 | Miltiadis Vasilakis | } |
546 | be116d22 | Miltiadis Vasilakis | |
547 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
548 | be116d22 | Miltiadis Vasilakis | #pragma mark PUT, COPY, MOVE |
549 | be116d22 | Miltiadis Vasilakis | |
550 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from ASIPithosObject with data) |
551 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object { |
552 | be116d22 | Miltiadis Vasilakis | NSUInteger isPublic = ASIPithosObjectRequestPublicIgnore; |
553 | be116d22 | Miltiadis Vasilakis | if (object.publicURI) { |
554 | be116d22 | Miltiadis Vasilakis | isPublic = ASIPithosObjectRequestPublicTrue; |
555 | be116d22 | Miltiadis Vasilakis | if ([object.publicURI isEqualToString:@""]) |
556 | be116d22 | Miltiadis Vasilakis | isPublic = ASIPithosObjectRequestPublicFalse; |
557 | be116d22 | Miltiadis Vasilakis | } |
558 | 2fb7b1fc | Miltiadis Vasilakis | return [self writeObjectDataRequestWithPithos:pithos containerName:containerName |
559 | be116d22 | Miltiadis Vasilakis | objectName:object.name |
560 | be116d22 | Miltiadis Vasilakis | eTag:object.hash |
561 | be116d22 | Miltiadis Vasilakis | contentType:object.contentType |
562 | be116d22 | Miltiadis Vasilakis | contentEncoding:object.contentEncoding |
563 | be116d22 | Miltiadis Vasilakis | contentDisposition:object.contentDisposition |
564 | be116d22 | Miltiadis Vasilakis | manifest:object.manifest |
565 | be116d22 | Miltiadis Vasilakis | sharing:object.sharing |
566 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
567 | be116d22 | Miltiadis Vasilakis | metadata:object.metadata |
568 | be116d22 | Miltiadis Vasilakis | data:object.data]; |
569 | be116d22 | Miltiadis Vasilakis | } |
570 | be116d22 | Miltiadis Vasilakis | |
571 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from ASIPithosObject with data) [If-Match] |
572 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object |
573 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
574 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName object:object]; |
575 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
576 | be116d22 | Miltiadis Vasilakis | return request; |
577 | be116d22 | Miltiadis Vasilakis | } |
578 | be116d22 | Miltiadis Vasilakis | |
579 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from ASIPithosObject with data) [If-None-Match] |
580 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object |
581 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
582 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName object:object]; |
583 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
584 | be116d22 | Miltiadis Vasilakis | return request; |
585 | be116d22 | Miltiadis Vasilakis | } |
586 | be116d22 | Miltiadis Vasilakis | |
587 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from NSData) |
588 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
589 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
590 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
591 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
592 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
593 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
594 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
595 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
596 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
597 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data { |
598 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"PUT" pithos:pithos containerName:containerName objectName:objectName]; |
599 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:eTag |
600 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
601 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
602 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
603 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
604 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
605 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
606 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
607 | be116d22 | Miltiadis Vasilakis | [request appendPostData:data]; |
608 | be116d22 | Miltiadis Vasilakis | request.requestMethod = @"PUT"; |
609 | be116d22 | Miltiadis Vasilakis | return request; |
610 | be116d22 | Miltiadis Vasilakis | } |
611 | be116d22 | Miltiadis Vasilakis | |
612 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from NSData) [If-Match] |
613 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
614 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
615 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
616 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
617 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
618 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
619 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
620 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
621 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
622 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data |
623 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
624 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
625 | be116d22 | Miltiadis Vasilakis | eTag:eTag |
626 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
627 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
628 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
629 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
630 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
631 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
632 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
633 | be116d22 | Miltiadis Vasilakis | data:data]; |
634 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
635 | be116d22 | Miltiadis Vasilakis | return request; |
636 | be116d22 | Miltiadis Vasilakis | } |
637 | be116d22 | Miltiadis Vasilakis | |
638 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from NSData) [If-None-Match] |
639 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
640 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
641 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
642 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
643 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
644 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
645 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
646 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
647 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
648 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data |
649 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
650 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
651 | be116d22 | Miltiadis Vasilakis | eTag:eTag |
652 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
653 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
654 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
655 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
656 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
657 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
658 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
659 | be116d22 | Miltiadis Vasilakis | data:data]; |
660 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
661 | be116d22 | Miltiadis Vasilakis | return request; |
662 | be116d22 | Miltiadis Vasilakis | } |
663 | be116d22 | Miltiadis Vasilakis | |
664 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from file) |
665 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
666 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
667 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
668 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
669 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
670 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
671 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
672 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
673 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
674 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath { |
675 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"PUT" pithos:pithos containerName:containerName objectName:objectName]; |
676 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:eTag |
677 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
678 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
679 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
680 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
681 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
682 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
683 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
684 | be116d22 | Miltiadis Vasilakis | request.shouldStreamPostDataFromDisk = YES; |
685 | be116d22 | Miltiadis Vasilakis | request.postBodyFilePath = filePath; |
686 | be116d22 | Miltiadis Vasilakis | request.requestMethod = @"PUT"; |
687 | be116d22 | Miltiadis Vasilakis | return request; |
688 | be116d22 | Miltiadis Vasilakis | } |
689 | be116d22 | Miltiadis Vasilakis | |
690 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from file) [If-Match] |
691 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
692 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
693 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
694 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
695 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
696 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
697 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
698 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
699 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
700 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath |
701 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
702 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
703 | be116d22 | Miltiadis Vasilakis | eTag:eTag |
704 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
705 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
706 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
707 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
708 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
709 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
710 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
711 | be116d22 | Miltiadis Vasilakis | file:filePath]; |
712 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
713 | be116d22 | Miltiadis Vasilakis | return request; |
714 | be116d22 | Miltiadis Vasilakis | } |
715 | be116d22 | Miltiadis Vasilakis | |
716 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from file) [If-None-Match] |
717 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
718 | 2fb7b1fc | Miltiadis Vasilakis | eTag:(NSString *)eTag |
719 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
720 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
721 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
722 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
723 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
724 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
725 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
726 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath |
727 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
728 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
729 | be116d22 | Miltiadis Vasilakis | eTag:eTag |
730 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
731 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
732 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
733 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
734 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
735 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
736 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
737 | be116d22 | Miltiadis Vasilakis | file:filePath]; |
738 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
739 | be116d22 | Miltiadis Vasilakis | return request; |
740 | be116d22 | Miltiadis Vasilakis | } |
741 | be116d22 | Miltiadis Vasilakis | |
742 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from hashes) |
743 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
744 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
745 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
746 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
747 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
748 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
749 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
750 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
751 | 2fb7b1fc | Miltiadis Vasilakis | blockSize:(NSUInteger)blockSize |
752 | 2fb7b1fc | Miltiadis Vasilakis | blockHash:(NSString *)blockHash |
753 | 2fb7b1fc | Miltiadis Vasilakis | hashes:(NSArray *)hashes |
754 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSUInteger)bytes { |
755 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"PUT" pithos:pithos containerName:containerName objectName:objectName queryString:@"?format=xml&hashmap="]; |
756 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
757 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
758 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
759 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
760 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
761 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
762 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
763 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
764 | be116d22 | Miltiadis Vasilakis | NSString *dataString = [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?><object name=\"%@\" bytes=\"%lu\" block_size=\"%lu\" block_hash=\"%@\">", |
765 | 25cafffe | Miltiadis Vasilakis | [(NSString *)CFXMLCreateStringByEscapingEntities(NULL, (CFStringRef)objectName , NULL) autorelease], |
766 | 34178792 | Miltiadis Vasilakis | bytes, blockSize, blockHash]; |
767 | be116d22 | Miltiadis Vasilakis | for (NSString *hash in hashes) { |
768 | be116d22 | Miltiadis Vasilakis | dataString = [dataString stringByAppendingFormat:@"<hash>%@</hash>", hash]; |
769 | be116d22 | Miltiadis Vasilakis | } |
770 | cc8c8935 | Miltiadis Vasilakis | dataString = [dataString stringByAppendingString:@"</object>"]; |
771 | be116d22 | Miltiadis Vasilakis | [request appendPostData:[dataString dataUsingEncoding:NSUTF8StringEncoding]]; |
772 | be116d22 | Miltiadis Vasilakis | request.requestMethod = @"PUT"; |
773 | 2fb7b1fc | Miltiadis Vasilakis | request.objectRequestType = ASIPithosObjectRequestHashmapWrite; |
774 | 2fb7b1fc | Miltiadis Vasilakis | return request; |
775 | be116d22 | Miltiadis Vasilakis | } |
776 | be116d22 | Miltiadis Vasilakis | |
777 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from hashes) [If-Match] |
778 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
779 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
780 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
781 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
782 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
783 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
784 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
785 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
786 | 2fb7b1fc | Miltiadis Vasilakis | blockSize:(NSUInteger)blockSize |
787 | 2fb7b1fc | Miltiadis Vasilakis | blockHash:(NSString *)blockHash |
788 | 2fb7b1fc | Miltiadis Vasilakis | hashes:(NSArray *)hashes |
789 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSUInteger)bytes |
790 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
791 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
792 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
793 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
794 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
795 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
796 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
797 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
798 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
799 | be116d22 | Miltiadis Vasilakis | blockSize:blockSize |
800 | be116d22 | Miltiadis Vasilakis | blockHash:blockHash |
801 | be116d22 | Miltiadis Vasilakis | hashes:hashes |
802 | be116d22 | Miltiadis Vasilakis | bytes:bytes]; |
803 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
804 | be116d22 | Miltiadis Vasilakis | return request; |
805 | be116d22 | Miltiadis Vasilakis | } |
806 | be116d22 | Miltiadis Vasilakis | |
807 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (from hashes) [If-None-Match] |
808 | 2fb7b1fc | Miltiadis Vasilakis | + (id)writeObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
809 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
810 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
811 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
812 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
813 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
814 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
815 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
816 | 2fb7b1fc | Miltiadis Vasilakis | blockSize:(NSUInteger)blockSize |
817 | 2fb7b1fc | Miltiadis Vasilakis | blockHash:(NSString *)blockHash |
818 | 2fb7b1fc | Miltiadis Vasilakis | hashes:(NSArray *)hashes |
819 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSUInteger)bytes |
820 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
821 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self writeObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
822 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
823 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
824 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
825 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
826 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
827 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
828 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
829 | be116d22 | Miltiadis Vasilakis | blockSize:blockSize |
830 | be116d22 | Miltiadis Vasilakis | blockHash:blockHash |
831 | be116d22 | Miltiadis Vasilakis | hashes:hashes |
832 | be116d22 | Miltiadis Vasilakis | bytes:bytes]; |
833 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
834 | be116d22 | Miltiadis Vasilakis | return request; |
835 | be116d22 | Miltiadis Vasilakis | } |
836 | be116d22 | Miltiadis Vasilakis | |
837 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (copy from source) |
838 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
839 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
840 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
841 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
842 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
843 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
844 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
845 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
846 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
847 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
848 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
849 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion { |
850 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"PUT" pithos:pithos containerName:containerName objectName:objectName]; |
851 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
852 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
853 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
854 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
855 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
856 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
857 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
858 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
859 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"Content-Length" value:@"0"]; |
860 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Copy-From" |
861 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[NSString stringWithFormat:@"/%@/%@", sourceContainerName, sourceObjectName]]]; |
862 | 9d03a93c | Miltiadis Vasilakis | if (sourceAccount) |
863 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Account" |
864 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:sourceAccount]]; |
865 | be116d22 | Miltiadis Vasilakis | if (sourceVersion) |
866 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Version" value:sourceVersion]; |
867 | be116d22 | Miltiadis Vasilakis | return request; |
868 | be116d22 | Miltiadis Vasilakis | } |
869 | be116d22 | Miltiadis Vasilakis | |
870 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (copy from source) [If-Match] |
871 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
872 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
873 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
874 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
875 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
876 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
877 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
878 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
879 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
880 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
881 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
882 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
883 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
884 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self copyObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
885 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
886 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
887 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
888 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
889 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
890 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
891 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
892 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
893 | be116d22 | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
894 | 9d03a93c | Miltiadis Vasilakis | sourceAccount:sourceAccount |
895 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
896 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
897 | be116d22 | Miltiadis Vasilakis | return request; |
898 | be116d22 | Miltiadis Vasilakis | } |
899 | be116d22 | Miltiadis Vasilakis | |
900 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (copy from source) [If-None-Match] |
901 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
902 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
903 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
904 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
905 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
906 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
907 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
908 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
909 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
910 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
911 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
912 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
913 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
914 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self copyObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
915 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
916 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
917 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
918 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
919 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
920 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
921 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
922 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
923 | be116d22 | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
924 | 9d03a93c | Miltiadis Vasilakis | sourceAccount:sourceAccount |
925 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
926 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
927 | be116d22 | Miltiadis Vasilakis | return request; |
928 | be116d22 | Miltiadis Vasilakis | } |
929 | be116d22 | Miltiadis Vasilakis | |
930 | be116d22 | Miltiadis Vasilakis | // COPY storageURL/container/object (copy to destination) |
931 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
932 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
933 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
934 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
935 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
936 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
937 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
938 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
939 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
940 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
941 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount |
942 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion { |
943 | 308855b4 | Miltiadis Vasilakis | NSString *queryString = nil; |
944 | 308855b4 | Miltiadis Vasilakis | if (!contentType) |
945 | 308855b4 | Miltiadis Vasilakis | queryString = @"?ignore_content_type="; |
946 | 308855b4 | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"COPY" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
947 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
948 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
949 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
950 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
951 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
952 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
953 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
954 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
955 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"Destination" |
956 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[NSString stringWithFormat:@"/%@/%@", destinationContainerName, destinationObjectName]]]; |
957 | 9d03a93c | Miltiadis Vasilakis | if (destinationAccount) |
958 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"Destination-Account" |
959 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:destinationAccount]]; |
960 | be116d22 | Miltiadis Vasilakis | if (sourceVersion) |
961 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Version" value:sourceVersion]; |
962 | be116d22 | Miltiadis Vasilakis | return request; |
963 | be116d22 | Miltiadis Vasilakis | } |
964 | be116d22 | Miltiadis Vasilakis | |
965 | be116d22 | Miltiadis Vasilakis | // COPY storageURL/container/object (copy to destination) [If-Match] |
966 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
967 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
968 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
969 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
970 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
971 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
972 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
973 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
974 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
975 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
976 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount |
977 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
978 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
979 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self copyObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
980 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
981 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
982 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
983 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
984 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
985 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
986 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
987 | be116d22 | Miltiadis Vasilakis | destinationContainerName:destinationContainerName |
988 | be116d22 | Miltiadis Vasilakis | destinationObjectName:destinationObjectName |
989 | 9d03a93c | Miltiadis Vasilakis | destinationAccount:destinationAccount |
990 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
991 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
992 | be116d22 | Miltiadis Vasilakis | return request; |
993 | be116d22 | Miltiadis Vasilakis | } |
994 | be116d22 | Miltiadis Vasilakis | |
995 | be116d22 | Miltiadis Vasilakis | // COPY storageURL/container/object (copy to destination) [If-None-Match] |
996 | 2fb7b1fc | Miltiadis Vasilakis | + (id)copyObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
997 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
998 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
999 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1000 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1001 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1002 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1003 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1004 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
1005 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
1006 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount |
1007 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
1008 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1009 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self copyObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1010 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1011 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1012 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1013 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1014 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1015 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1016 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1017 | be116d22 | Miltiadis Vasilakis | destinationContainerName:destinationContainerName |
1018 | be116d22 | Miltiadis Vasilakis | destinationObjectName:destinationObjectName |
1019 | 9d03a93c | Miltiadis Vasilakis | destinationAccount:destinationAccount |
1020 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
1021 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1022 | be116d22 | Miltiadis Vasilakis | return request; |
1023 | be116d22 | Miltiadis Vasilakis | } |
1024 | be116d22 | Miltiadis Vasilakis | |
1025 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (move from source) |
1026 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1027 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1028 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1029 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1030 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1031 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1032 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1033 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1034 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1035 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1036 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount { |
1037 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"PUT" pithos:pithos containerName:containerName objectName:objectName]; |
1038 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1039 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1040 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1041 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1042 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1043 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1044 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1045 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1046 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"Content-Length" value:@"0"]; |
1047 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Move-From" |
1048 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[NSString stringWithFormat:@"/%@/%@", sourceContainerName, sourceObjectName]]]; |
1049 | 9d03a93c | Miltiadis Vasilakis | if (sourceAccount) |
1050 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Account" |
1051 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:sourceAccount]]; |
1052 | be116d22 | Miltiadis Vasilakis | return request; |
1053 | be116d22 | Miltiadis Vasilakis | } |
1054 | be116d22 | Miltiadis Vasilakis | |
1055 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (move from source) [If-Match] |
1056 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1057 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1058 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1059 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1060 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1061 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1062 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1063 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1064 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1065 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1066 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
1067 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1068 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self moveObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1069 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1070 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1071 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1072 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1073 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1074 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1075 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1076 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
1077 | 9d03a93c | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
1078 | 9d03a93c | Miltiadis Vasilakis | sourceAccount:sourceAccount]; |
1079 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1080 | be116d22 | Miltiadis Vasilakis | return request; |
1081 | be116d22 | Miltiadis Vasilakis | } |
1082 | be116d22 | Miltiadis Vasilakis | |
1083 | be116d22 | Miltiadis Vasilakis | // PUT storageURL/container/object (move from source) [If-None-Match] |
1084 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1085 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1086 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1087 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1088 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1089 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1090 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1091 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1092 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1093 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1094 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
1095 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1096 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self moveObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1097 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1098 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1099 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1100 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1101 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1102 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1103 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1104 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
1105 | 9d03a93c | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
1106 | 9d03a93c | Miltiadis Vasilakis | sourceAccount:sourceAccount]; |
1107 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1108 | be116d22 | Miltiadis Vasilakis | return request; |
1109 | be116d22 | Miltiadis Vasilakis | } |
1110 | be116d22 | Miltiadis Vasilakis | |
1111 | be116d22 | Miltiadis Vasilakis | // MOVE storageURL/container/object (move to destination) |
1112 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1113 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1114 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1115 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1116 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1117 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1118 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1119 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1120 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
1121 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
1122 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount { |
1123 | 308855b4 | Miltiadis Vasilakis | NSString *queryString = nil; |
1124 | 308855b4 | Miltiadis Vasilakis | if (!contentType) |
1125 | 308855b4 | Miltiadis Vasilakis | queryString = @"?ignore_content_type="; |
1126 | 308855b4 | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"MOVE" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1127 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1128 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1129 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1130 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1131 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1132 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1133 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1134 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1135 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"Destination" |
1136 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[NSString stringWithFormat:@"/%@/%@", destinationContainerName, destinationObjectName]]]; |
1137 | 9d03a93c | Miltiadis Vasilakis | if (destinationAccount) |
1138 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"Destination-Account" |
1139 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:destinationAccount]]; |
1140 | be116d22 | Miltiadis Vasilakis | return request; |
1141 | be116d22 | Miltiadis Vasilakis | } |
1142 | be116d22 | Miltiadis Vasilakis | |
1143 | be116d22 | Miltiadis Vasilakis | // MOVE storageURL/container/object (move to destination) [If-Match] |
1144 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1145 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1146 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1147 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1148 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1149 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1150 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1151 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1152 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
1153 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
1154 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount |
1155 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1156 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self moveObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1157 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1158 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1159 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1160 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1161 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1162 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1163 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1164 | be116d22 | Miltiadis Vasilakis | destinationContainerName:destinationContainerName |
1165 | 9d03a93c | Miltiadis Vasilakis | destinationObjectName:destinationObjectName |
1166 | 9d03a93c | Miltiadis Vasilakis | destinationAccount:destinationAccount]; |
1167 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1168 | be116d22 | Miltiadis Vasilakis | return request; |
1169 | be116d22 | Miltiadis Vasilakis | } |
1170 | be116d22 | Miltiadis Vasilakis | |
1171 | be116d22 | Miltiadis Vasilakis | // MOVE storageURL/container/object (move to destination) [If-None-Match] |
1172 | 2fb7b1fc | Miltiadis Vasilakis | + (id)moveObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1173 | 2fb7b1fc | Miltiadis Vasilakis | contentType:(NSString *)contentType |
1174 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1175 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1176 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1177 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1178 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1179 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1180 | 2fb7b1fc | Miltiadis Vasilakis | destinationContainerName:(NSString *)destinationContainerName |
1181 | 2fb7b1fc | Miltiadis Vasilakis | destinationObjectName:(NSString *)destinationObjectName |
1182 | 2fb7b1fc | Miltiadis Vasilakis | destinationAccount:(NSString *)destinationAccount |
1183 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1184 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self moveObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1185 | be116d22 | Miltiadis Vasilakis | contentType:contentType |
1186 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1187 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1188 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1189 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1190 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1191 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1192 | be116d22 | Miltiadis Vasilakis | destinationContainerName:destinationContainerName |
1193 | 9d03a93c | Miltiadis Vasilakis | destinationObjectName:destinationObjectName |
1194 | 9d03a93c | Miltiadis Vasilakis | destinationAccount:destinationAccount]; |
1195 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1196 | be116d22 | Miltiadis Vasilakis | return request; |
1197 | be116d22 | Miltiadis Vasilakis | } |
1198 | be116d22 | Miltiadis Vasilakis | |
1199 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
1200 | be116d22 | Miltiadis Vasilakis | #pragma mark POST |
1201 | be116d22 | Miltiadis Vasilakis | |
1202 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) |
1203 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1204 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update { |
1205 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1206 | be116d22 | Miltiadis Vasilakis | if (update) |
1207 | be116d22 | Miltiadis Vasilakis | queryString = @"?update="; |
1208 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"POST" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1209 | be116d22 | Miltiadis Vasilakis | } |
1210 | be116d22 | Miltiadis Vasilakis | |
1211 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) [If-Match] |
1212 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1213 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1214 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1215 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName update:update]; |
1216 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1217 | be116d22 | Miltiadis Vasilakis | return request; |
1218 | be116d22 | Miltiadis Vasilakis | } |
1219 | be116d22 | Miltiadis Vasilakis | |
1220 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) [If-None-Match] |
1221 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1222 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1223 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1224 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName update:update]; |
1225 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1226 | be116d22 | Miltiadis Vasilakis | return request; |
1227 | be116d22 | Miltiadis Vasilakis | } |
1228 | be116d22 | Miltiadis Vasilakis | |
1229 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) |
1230 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1231 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1232 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1233 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1234 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1235 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1236 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1237 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update { |
1238 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1239 | be116d22 | Miltiadis Vasilakis | if (update) |
1240 | be116d22 | Miltiadis Vasilakis | queryString = @"?update="; |
1241 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"POST" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1242 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1243 | be116d22 | Miltiadis Vasilakis | contentType:nil |
1244 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1245 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1246 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1247 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1248 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1249 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1250 | be116d22 | Miltiadis Vasilakis | return request; |
1251 | be116d22 | Miltiadis Vasilakis | } |
1252 | be116d22 | Miltiadis Vasilakis | |
1253 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) [If-Match] |
1254 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1255 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1256 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1257 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1258 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1259 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1260 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1261 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1262 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1263 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1264 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1265 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1266 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1267 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1268 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1269 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1270 | be116d22 | Miltiadis Vasilakis | update:update]; |
1271 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1272 | be116d22 | Miltiadis Vasilakis | return request; |
1273 | be116d22 | Miltiadis Vasilakis | } |
1274 | be116d22 | Miltiadis Vasilakis | |
1275 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update metadata) [If-None-Match] |
1276 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectMetadataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1277 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1278 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1279 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1280 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1281 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1282 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1283 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1284 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1285 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectMetadataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1286 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1287 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1288 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1289 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1290 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1291 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1292 | be116d22 | Miltiadis Vasilakis | update:update]; |
1293 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1294 | be116d22 | Miltiadis Vasilakis | return request; |
1295 | be116d22 | Miltiadis Vasilakis | } |
1296 | be116d22 | Miltiadis Vasilakis | |
1297 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from ASIPithosObject with data) |
1298 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object |
1299 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1300 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange { |
1301 | be116d22 | Miltiadis Vasilakis | NSUInteger isPublic = ASIPithosObjectRequestPublicIgnore; |
1302 | be116d22 | Miltiadis Vasilakis | if (object.publicURI) { |
1303 | be116d22 | Miltiadis Vasilakis | isPublic = ASIPithosObjectRequestPublicTrue; |
1304 | be116d22 | Miltiadis Vasilakis | if ([object.publicURI isEqualToString:@""]) |
1305 | be116d22 | Miltiadis Vasilakis | isPublic = ASIPithosObjectRequestPublicFalse; |
1306 | be116d22 | Miltiadis Vasilakis | } |
1307 | 2fb7b1fc | Miltiadis Vasilakis | return [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:object.name |
1308 | be116d22 | Miltiadis Vasilakis | contentEncoding:object.contentEncoding |
1309 | be116d22 | Miltiadis Vasilakis | contentDisposition:object.contentDisposition |
1310 | be116d22 | Miltiadis Vasilakis | manifest:object.manifest |
1311 | be116d22 | Miltiadis Vasilakis | sharing:object.sharing |
1312 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1313 | be116d22 | Miltiadis Vasilakis | metadata:object.metadata |
1314 | be116d22 | Miltiadis Vasilakis | update:update |
1315 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1316 | be116d22 | Miltiadis Vasilakis | bytes:[NSNumber numberWithUnsignedLong:object.bytes] |
1317 | be116d22 | Miltiadis Vasilakis | data:object.data]; |
1318 | be116d22 | Miltiadis Vasilakis | } |
1319 | be116d22 | Miltiadis Vasilakis | |
1320 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from ASIPithosObject with data) [If-Match] |
1321 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object |
1322 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1323 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1324 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1325 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName object:object |
1326 | be116d22 | Miltiadis Vasilakis | update:update |
1327 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange]; |
1328 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1329 | be116d22 | Miltiadis Vasilakis | return request; |
1330 | be116d22 | Miltiadis Vasilakis | } |
1331 | be116d22 | Miltiadis Vasilakis | |
1332 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from ASIPithosObject with data) [If-None-Match] |
1333 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName object:(ASIPithosObject *)object |
1334 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1335 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1336 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1337 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName object:object |
1338 | be116d22 | Miltiadis Vasilakis | update:update |
1339 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange]; |
1340 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1341 | be116d22 | Miltiadis Vasilakis | return request; |
1342 | be116d22 | Miltiadis Vasilakis | } |
1343 | be116d22 | Miltiadis Vasilakis | |
1344 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from NSData) |
1345 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1346 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1347 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1348 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1349 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1350 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1351 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1352 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1353 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1354 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1355 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data { |
1356 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1357 | be116d22 | Miltiadis Vasilakis | if (update) |
1358 | be116d22 | Miltiadis Vasilakis | queryString = @"?update="; |
1359 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"POST" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1360 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1361 | be116d22 | Miltiadis Vasilakis | contentType:@"application/octet-stream" |
1362 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1363 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1364 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1365 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1366 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1367 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1368 | be116d22 | Miltiadis Vasilakis | if (contentRange) |
1369 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"Content-Range" value:contentRange]; |
1370 | be116d22 | Miltiadis Vasilakis | if (bytes) |
1371 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Object-Bytes" value:[NSString stringWithFormat:@"%lu", [bytes unsignedLongValue]]]; |
1372 | be116d22 | Miltiadis Vasilakis | [request appendPostData:data]; |
1373 | be116d22 | Miltiadis Vasilakis | return request; |
1374 | be116d22 | Miltiadis Vasilakis | } |
1375 | be116d22 | Miltiadis Vasilakis | |
1376 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from NSData) [If-Match] |
1377 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1378 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1379 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1380 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1381 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1382 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1383 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1384 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1385 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1386 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1387 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data |
1388 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1389 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1390 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1391 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1392 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1393 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1394 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1395 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1396 | be116d22 | Miltiadis Vasilakis | update:update |
1397 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1398 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1399 | be116d22 | Miltiadis Vasilakis | data:data]; |
1400 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1401 | be116d22 | Miltiadis Vasilakis | return request; |
1402 | be116d22 | Miltiadis Vasilakis | } |
1403 | be116d22 | Miltiadis Vasilakis | |
1404 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from NSData) [If-None-Match] |
1405 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1406 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1407 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1408 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1409 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1410 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1411 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1412 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1413 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1414 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1415 | 2fb7b1fc | Miltiadis Vasilakis | data:(NSData *)data |
1416 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1417 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1418 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1419 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1420 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1421 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1422 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1423 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1424 | be116d22 | Miltiadis Vasilakis | update:update |
1425 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1426 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1427 | be116d22 | Miltiadis Vasilakis | data:data]; |
1428 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1429 | be116d22 | Miltiadis Vasilakis | return request; |
1430 | be116d22 | Miltiadis Vasilakis | } |
1431 | be116d22 | Miltiadis Vasilakis | |
1432 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from file) |
1433 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1434 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1435 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1436 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1437 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1438 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1439 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1440 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1441 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1442 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1443 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath { |
1444 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1445 | be116d22 | Miltiadis Vasilakis | if (update) |
1446 | be116d22 | Miltiadis Vasilakis | queryString = @"?update="; |
1447 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"POST" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1448 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1449 | be116d22 | Miltiadis Vasilakis | contentType:@"application/octet-stream" |
1450 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1451 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1452 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1453 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1454 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1455 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1456 | be116d22 | Miltiadis Vasilakis | if (contentRange) |
1457 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"Content-Range" value:contentRange]; |
1458 | be116d22 | Miltiadis Vasilakis | if (bytes) |
1459 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Object-Bytes" value:[NSString stringWithFormat:@"%lu", [bytes unsignedLongValue]]]; |
1460 | be116d22 | Miltiadis Vasilakis | request.shouldStreamPostDataFromDisk = YES; |
1461 | be116d22 | Miltiadis Vasilakis | request.postBodyFilePath = filePath; |
1462 | be116d22 | Miltiadis Vasilakis | return request; |
1463 | be116d22 | Miltiadis Vasilakis | } |
1464 | be116d22 | Miltiadis Vasilakis | |
1465 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from file) [If-Match] |
1466 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1467 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1468 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1469 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1470 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1471 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1472 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1473 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1474 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1475 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1476 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath |
1477 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1478 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1479 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1480 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1481 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1482 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1483 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1484 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1485 | be116d22 | Miltiadis Vasilakis | update:update |
1486 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1487 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1488 | be116d22 | Miltiadis Vasilakis | file:filePath]; |
1489 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1490 | be116d22 | Miltiadis Vasilakis | return request; |
1491 | be116d22 | Miltiadis Vasilakis | } |
1492 | be116d22 | Miltiadis Vasilakis | |
1493 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from file) [If-None-Match] |
1494 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1495 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1496 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1497 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1498 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1499 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1500 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1501 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1502 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1503 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1504 | 2fb7b1fc | Miltiadis Vasilakis | file:(NSString *)filePath |
1505 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1506 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1507 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1508 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1509 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1510 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1511 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1512 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1513 | be116d22 | Miltiadis Vasilakis | update:update |
1514 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1515 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1516 | be116d22 | Miltiadis Vasilakis | file:filePath]; |
1517 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1518 | be116d22 | Miltiadis Vasilakis | return request; |
1519 | be116d22 | Miltiadis Vasilakis | } |
1520 | be116d22 | Miltiadis Vasilakis | |
1521 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from source) |
1522 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1523 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1524 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1525 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1526 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1527 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1528 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1529 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1530 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1531 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1532 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1533 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1534 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
1535 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion { |
1536 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1537 | be116d22 | Miltiadis Vasilakis | if (update) |
1538 | be116d22 | Miltiadis Vasilakis | queryString = @"?update="; |
1539 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self storageRequestWithMethod:@"POST" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1540 | be116d22 | Miltiadis Vasilakis | [request prepareObjectRequestWithETag:nil |
1541 | be116d22 | Miltiadis Vasilakis | contentType:nil |
1542 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1543 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1544 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1545 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1546 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1547 | be116d22 | Miltiadis Vasilakis | metadata:metadata]; |
1548 | be116d22 | Miltiadis Vasilakis | if (contentRange) |
1549 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"Content-Range" value:contentRange]; |
1550 | be116d22 | Miltiadis Vasilakis | if (bytes) |
1551 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Object-Bytes" value:[NSString stringWithFormat:@"%lu", [bytes unsignedLongValue]]]; |
1552 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Object" |
1553 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:[NSString stringWithFormat:@"/%@/%@", sourceContainerName, sourceObjectName]]]; |
1554 | b9ebc0f4 | Miltiadis Vasilakis | if (sourceAccount) |
1555 | 6b3a5e6a | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Account" |
1556 | 6d3af6ef | Miltiadis Vasilakis | value:[self encodeToPercentEscape:sourceAccount]]; |
1557 | be116d22 | Miltiadis Vasilakis | if (sourceVersion) |
1558 | be116d22 | Miltiadis Vasilakis | [request addRequestHeader:@"X-Source-Version" value:sourceVersion]; |
1559 | be116d22 | Miltiadis Vasilakis | return request; |
1560 | be116d22 | Miltiadis Vasilakis | |
1561 | be116d22 | Miltiadis Vasilakis | } |
1562 | be116d22 | Miltiadis Vasilakis | |
1563 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from source) [If-Match] |
1564 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1565 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1566 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1567 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1568 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1569 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1570 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1571 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1572 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1573 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1574 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1575 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1576 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
1577 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
1578 | 2fb7b1fc | Miltiadis Vasilakis | ifMatch:(NSString *)matchETag { |
1579 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1580 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1581 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1582 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1583 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1584 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1585 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1586 | be116d22 | Miltiadis Vasilakis | update:update |
1587 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1588 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1589 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
1590 | be116d22 | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
1591 | b9ebc0f4 | Miltiadis Vasilakis | sourceAccount:sourceAccount |
1592 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
1593 | be116d22 | Miltiadis Vasilakis | [request addRequestIfMatchHeader:matchETag]; |
1594 | be116d22 | Miltiadis Vasilakis | return request; |
1595 | be116d22 | Miltiadis Vasilakis | } |
1596 | be116d22 | Miltiadis Vasilakis | |
1597 | be116d22 | Miltiadis Vasilakis | // POST storageURL/container/object?[update=] (update data from source) [If-None-Match] |
1598 | 2fb7b1fc | Miltiadis Vasilakis | + (id)updateObjectDataRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1599 | 2fb7b1fc | Miltiadis Vasilakis | contentEncoding:(NSString *)contentEncoding |
1600 | 2fb7b1fc | Miltiadis Vasilakis | contentDisposition:(NSString *)contentDisposition |
1601 | 2fb7b1fc | Miltiadis Vasilakis | manifest:(NSString *)manifest |
1602 | 2fb7b1fc | Miltiadis Vasilakis | sharing:(NSString *)sharing |
1603 | 2fb7b1fc | Miltiadis Vasilakis | isPublic:(NSUInteger)isPublic |
1604 | 2fb7b1fc | Miltiadis Vasilakis | metadata:(NSDictionary *)metadata |
1605 | 2fb7b1fc | Miltiadis Vasilakis | update:(BOOL)update |
1606 | 2fb7b1fc | Miltiadis Vasilakis | contentRange:(NSString *)contentRange |
1607 | 2fb7b1fc | Miltiadis Vasilakis | bytes:(NSNumber *)bytes |
1608 | 2fb7b1fc | Miltiadis Vasilakis | sourceContainerName:(NSString *)sourceContainerName |
1609 | 2fb7b1fc | Miltiadis Vasilakis | sourceObjectName:(NSString *)sourceObjectName |
1610 | 2fb7b1fc | Miltiadis Vasilakis | sourceAccount:(NSString *)sourceAccount |
1611 | 2fb7b1fc | Miltiadis Vasilakis | sourceVersion:(NSString *)sourceVersion |
1612 | 2fb7b1fc | Miltiadis Vasilakis | ifNoneMatch:(NSString *)matchETag { |
1613 | 2fb7b1fc | Miltiadis Vasilakis | ASIPithosObjectRequest *request = [self updateObjectDataRequestWithPithos:pithos containerName:containerName objectName:objectName |
1614 | be116d22 | Miltiadis Vasilakis | contentEncoding:contentEncoding |
1615 | be116d22 | Miltiadis Vasilakis | contentDisposition:contentDisposition |
1616 | be116d22 | Miltiadis Vasilakis | manifest:manifest |
1617 | be116d22 | Miltiadis Vasilakis | sharing:sharing |
1618 | be116d22 | Miltiadis Vasilakis | isPublic:isPublic |
1619 | be116d22 | Miltiadis Vasilakis | metadata:metadata |
1620 | be116d22 | Miltiadis Vasilakis | update:update |
1621 | be116d22 | Miltiadis Vasilakis | contentRange:contentRange |
1622 | be116d22 | Miltiadis Vasilakis | bytes:bytes |
1623 | be116d22 | Miltiadis Vasilakis | sourceContainerName:sourceContainerName |
1624 | be116d22 | Miltiadis Vasilakis | sourceObjectName:sourceObjectName |
1625 | b9ebc0f4 | Miltiadis Vasilakis | sourceAccount:sourceAccount |
1626 | be116d22 | Miltiadis Vasilakis | sourceVersion:sourceVersion]; |
1627 | be116d22 | Miltiadis Vasilakis | [request addRequestIfNoneMatchHeader:matchETag]; |
1628 | be116d22 | Miltiadis Vasilakis | return request; |
1629 | be116d22 | Miltiadis Vasilakis | } |
1630 | be116d22 | Miltiadis Vasilakis | |
1631 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
1632 | be116d22 | Miltiadis Vasilakis | #pragma mark DELETE |
1633 | be116d22 | Miltiadis Vasilakis | |
1634 | be116d22 | Miltiadis Vasilakis | // DELETE storageURL/container/object |
1635 | 2fb7b1fc | Miltiadis Vasilakis | + (id)deleteObjectRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName { |
1636 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"DELETE" pithos:pithos containerName:containerName objectName:objectName]; |
1637 | be116d22 | Miltiadis Vasilakis | } |
1638 | be116d22 | Miltiadis Vasilakis | |
1639 | be116d22 | Miltiadis Vasilakis | // DELETE storageURL/container/object?[until=untilTimestamp] |
1640 | 2fb7b1fc | Miltiadis Vasilakis | + (id)deleteObjectRequestWithPithos:(ASIPithos *)pithos containerName:(NSString *)containerName objectName:(NSString *)objectName |
1641 | 2fb7b1fc | Miltiadis Vasilakis | until:(NSDate *)untilTimestamp { |
1642 | be116d22 | Miltiadis Vasilakis | NSString *queryString = nil; |
1643 | be116d22 | Miltiadis Vasilakis | if (untilTimestamp) |
1644 | be116d22 | Miltiadis Vasilakis | queryString = [NSString stringWithFormat:@"?until=%d", (int)[untilTimestamp timeIntervalSince1970]]; |
1645 | 2fb7b1fc | Miltiadis Vasilakis | return [self storageRequestWithMethod:@"DELETE" pithos:pithos containerName:containerName objectName:objectName queryString:queryString]; |
1646 | be116d22 | Miltiadis Vasilakis | } |
1647 | be116d22 | Miltiadis Vasilakis | |
1648 | be116d22 | Miltiadis Vasilakis | #pragma mark - |
1649 | be116d22 | Miltiadis Vasilakis | #pragma mark NSXMLParserDelegate |
1650 | be116d22 | Miltiadis Vasilakis | |
1651 | be116d22 | Miltiadis Vasilakis | - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { |
1652 | be116d22 | Miltiadis Vasilakis | self.currentElement = elementName; |
1653 | be116d22 | Miltiadis Vasilakis | if ((objectRequestType == ASIPithosObjectRequestHashmap) && [elementName isEqualToString:@"object"]) { |
1654 | be116d22 | Miltiadis Vasilakis | blockSize = [[attributeDict valueForKey:@"block_size"] intValue]; |
1655 | be116d22 | Miltiadis Vasilakis | blockHash = [[NSString alloc] initWithString:[attributeDict valueForKey:@"block_hash"]]; |
1656 | be116d22 | Miltiadis Vasilakis | bytes = [[attributeDict valueForKey:@"bytes"] intValue]; |
1657 | be116d22 | Miltiadis Vasilakis | } else if ((objectRequestType == ASIPithosObjectRequestVersions) && [elementName isEqualToString:@"version"]) { |
1658 | be116d22 | Miltiadis Vasilakis | self.currentObject = [ASIPithosObject object]; |
1659 | 78355da3 | Miltiadis Vasilakis | currentObject.versionTimestamp = [NSDate dateWithTimeIntervalSince1970:[[attributeDict valueForKey:@"timestamp"] doubleValue]]; |
1660 | be116d22 | Miltiadis Vasilakis | } |
1661 | be116d22 | Miltiadis Vasilakis | self.currentContent = @""; |
1662 | be116d22 | Miltiadis Vasilakis | } |
1663 | be116d22 | Miltiadis Vasilakis | |
1664 | be116d22 | Miltiadis Vasilakis | - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { |
1665 | 2fb7b1fc | Miltiadis Vasilakis | if (((objectRequestType == ASIPithosObjectRequestHashmap) && [elementName isEqualToString:@"hash"]) || |
1666 | 2fb7b1fc | Miltiadis Vasilakis | ((objectRequestType == ASIPithosObjectRequestHashmapWrite) && [elementName isEqualToString:@"item"])) { |
1667 | be116d22 | Miltiadis Vasilakis | [hashes addObject:currentContent]; |
1668 | 32017ec6 | Miltiadis Vasilakis | } else if ((objectRequestType == ASIPithosObjectRequestVersions) && ([elementName isEqualToString:@"version"])) { |
1669 | 32017ec6 | Miltiadis Vasilakis | currentObject.version = currentContent; |
1670 | 32017ec6 | Miltiadis Vasilakis | [versions addObject:currentObject]; |
1671 | 32017ec6 | Miltiadis Vasilakis | self.currentObject = nil; |
1672 | be116d22 | Miltiadis Vasilakis | } |
1673 | be116d22 | Miltiadis Vasilakis | } |
1674 | be116d22 | Miltiadis Vasilakis | |
1675 | be116d22 | Miltiadis Vasilakis | - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { |
1676 | be116d22 | Miltiadis Vasilakis | self.currentContent = [currentContent stringByAppendingString:string]; |
1677 | be116d22 | Miltiadis Vasilakis | } |
1678 | be116d22 | Miltiadis Vasilakis | |
1679 | be116d22 | Miltiadis Vasilakis | @end |