123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #import "PUTResponse.h"
- #import "HTTPLogging.h"
- // HTTP methods: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
- // HTTP headers: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
- // HTTP status codes: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
- static const int httpLogLevel = HTTP_LOG_LEVEL_WARN;
- @implementation PUTResponse
- - (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers body:(id)body {
- if ((self = [super init])) {
- if ([headers objectForKey:@"Content-Range"]) {
- HTTPLogError(@"Content-Range not supported for upload to \"%@\"", path);
- _status = 400;
- } else {
- BOOL overwrite = [[NSFileManager defaultManager] fileExistsAtPath:path];
- BOOL success;
- if ([body isKindOfClass:[NSString class]]) {
- [[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
- success = [[NSFileManager defaultManager] moveItemAtPath:body toPath:path error:NULL];
- } else {
- success = [body writeToFile:path atomically:YES];
- }
- if (success) {
- _status = overwrite ? 200 : 201;
- } else {
- HTTPLogError(@"Failed writing upload to \"%@\"", path);
- _status = 403;
- }
- }
- }
- return self;
- }
- - (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers bodyData:(NSData*)body {
- return [self initWithFilePath:path headers:headers body:body];
- }
- - (id) initWithFilePath:(NSString*)path headers:(NSDictionary*)headers bodyFile:(NSString*)body {
- return [self initWithFilePath:path headers:headers body:body];
- }
- - (UInt64) contentLength {
- return 0;
- }
- - (UInt64) offset {
- return 0;
- }
- - (void) setOffset:(UInt64)offset {
- ;
- }
- - (NSData*) readDataOfLength:(NSUInteger)length {
- return nil;
- }
- - (BOOL) isDone {
- return YES;
- }
- - (NSInteger) status {
- return _status;
- }
- @end
|