This repository has been archived by the owner on Jan 17, 2023. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
commit 2d0f5e254e38b3a2e2b9e5efaea1175a2186351c Author: Mattt Thompson <m@mattt.me> Date: Sun Jan 18 10:01:15 2015 -0800 etag -> ETag commit a1fa70595316999b93f870d3d4d9199a280be422 Author: Mattt Thompson <m@mattt.me> Date: Sun Jan 18 10:00:50 2015 -0800 Reimplementing AFAmazonS3ResponseObject- description commit 0ae0f2e2fcb169463b85556824eff6ada704fd61 Author: Mattt Thompson <m@mattt.me> Date: Sun Jan 18 10:00:18 2015 -0800 Consolidating AFAmazonS3ResponseObject into serializer Minor reformatting commit b210d2f899c5e6aa8252f20bd9010f2224946921 Merge: 6fc02e0 7fc5e00 Author: Mattt Thompson <m@mattt.me> Date: Sun Jan 18 09:52:24 2015 -0800 Merge branch 'issue70' of https://github.com/abbeycode/AFAmazonS3Manager into abbeycode-issue70 commit 7fc5e00 Author: Dov Frankel <dov@abbey-code.com> Date: Wed Jan 14 16:42:23 2015 -0500 Removed reference to XML responses from readme (issue #70) commit 65df718 Author: Dov Frankel <dov@abbey-code.com> Date: Wed Jan 14 16:01:12 2015 -0500 Updated readme to reflect new response object (issue #70) commit 5a1bcf6 Author: Dov Frankel <dov@abbey-code.com> Date: Wed Jan 14 15:22:08 2015 -0500 Added custom response handling to the library (Issue #70) Signed-off-by: Mattt Thompson <m@mattt.me>
- Loading branch information
Showing
4 changed files
with
150 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
// AFAmazonS3ResponseSerializer.h | ||
// | ||
// Copyright (c) 2011–2015 AFNetworking (http://afnetworking.com/) | ||
// | ||
// Permission is hereby granted, free of charge, to any person obtaining a copy | ||
// of this software and associated documentation files (the "Software"), to deal | ||
// in the Software without restriction, including without limitation the rights | ||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
// copies of the Software, and to permit persons to whom the Software is | ||
// furnished to do so, subject to the following conditions: | ||
// | ||
// The above copyright notice and this permission notice shall be included in | ||
// all copies or substantial portions of the Software. | ||
// | ||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
// THE SOFTWARE. | ||
|
||
#import "AFURLResponseSerialization.h" | ||
|
||
/** | ||
Returns an `AFAmazonS3ResponseObject` object from the AmazonS3 HTTP response | ||
*/ | ||
@interface AFAmazonS3ResponseSerializer : AFHTTPResponseSerializer | ||
|
||
@end | ||
|
||
#pragma mark - | ||
|
||
/** | ||
Returned as the response object for S3 requests | ||
*/ | ||
@interface AFAmazonS3ResponseObject : NSObject | ||
|
||
/** | ||
Creates a new from the HTTP response S3 returns | ||
@param response AFAmazonS3ResponseObject | ||
@return Returns an initialized instance of AFAmazonS3ResponseObject | ||
*/ | ||
+ (instancetype)responseObject:(NSHTTPURLResponse *)response; | ||
|
||
///------------------------- | ||
/// @name Reading Attributes | ||
///------------------------- | ||
|
||
/** | ||
The URL of the file sent to or retrieved from S3 | ||
*/ | ||
@property (readonly, nonatomic, copy) NSURL *URL; | ||
|
||
/** | ||
Contains the MD5 hash S3 computed for the file in the request | ||
*/ | ||
@property (readonly, nonatomic, copy) NSString *ETag; | ||
|
||
/** | ||
The original NSHTTPURLResponse object returned by S3 | ||
*/ | ||
@property (readonly, nonatomic, strong) NSHTTPURLResponse *originalResponse; | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
// AFAmazonS3ResponseSerializer.m | ||
// | ||
// Copyright (c) 2011–2015 AFNetworking (http://afnetworking.com/) | ||
// | ||
// Permission is hereby granted, free of charge, to any person obtaining a copy | ||
// of this software and associated documentation files (the "Software"), to deal | ||
// in the Software without restriction, including without limitation the rights | ||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
// copies of the Software, and to permit persons to whom the Software is | ||
// furnished to do so, subject to the following conditions: | ||
// | ||
// The above copyright notice and this permission notice shall be included in | ||
// all copies or substantial portions of the Software. | ||
// | ||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
// THE SOFTWARE. | ||
|
||
#import "AFAmazonS3ResponseSerializer.h" | ||
|
||
@implementation AFAmazonS3ResponseSerializer | ||
|
||
- (id)responseObjectForResponse:(NSURLResponse *)response | ||
data:(NSData *)data | ||
error:(NSError * __autoreleasing *)error | ||
{ | ||
if ([self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { | ||
return [AFAmazonS3ResponseObject responseObject:(NSHTTPURLResponse *)response]; | ||
} | ||
|
||
return nil; | ||
} | ||
|
||
@end | ||
|
||
#pragma mark - | ||
|
||
@interface AFAmazonS3ResponseObject () | ||
@property (readwrite, nonatomic, strong) NSHTTPURLResponse *originalResponse; | ||
@end | ||
|
||
#pragma mark - | ||
|
||
@implementation AFAmazonS3ResponseObject | ||
|
||
+ (instancetype)responseObject:(NSHTTPURLResponse *)response { | ||
AFAmazonS3ResponseObject *responseObject = [[AFAmazonS3ResponseObject alloc] init]; | ||
responseObject.originalResponse = response; | ||
|
||
return responseObject; | ||
} | ||
|
||
#pragma mark - | ||
|
||
- (NSURL *)URL { | ||
return self.originalResponse.URL; | ||
} | ||
|
||
- (NSString *)ETag { | ||
NSString *ETag = self.originalResponse.allHeaderFields[@"ETag"]; | ||
|
||
if ([ETag length] == 0) { | ||
return nil; | ||
} | ||
|
||
return [ETag stringByReplacingOccurrencesOfString:@"\"" withString:@""]; | ||
} | ||
|
||
#pragma mark - NSObject | ||
|
||
- (NSString *)description { | ||
return [NSString stringWithFormat:@"<%@: %p, URL: %@, ETAG: %@, originalResponse: %@>", NSStringFromClass([self class]), self, [self.URL absoluteString], self.ETag, self.originalResponse]; | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters