From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/ASIHTTPRequest/Classes/S3/ASIS3ObjectRequest.m | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 164 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/ASIHTTPRequest/Classes/S3/ASIS3ObjectRequest.m b/screendisplay/Pods/ASIHTTPRequest/Classes/S3/ASIS3ObjectRequest.m new file mode 100755 index 0000000..99442bb --- /dev/null +++ b/screendisplay/Pods/ASIHTTPRequest/Classes/S3/ASIS3ObjectRequest.m @@ -0,0 +1,164 @@ +// +// ASIS3ObjectRequest.m +// Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRequest +// +// Created by Ben Copsey on 16/03/2010. +// Copyright 2010 All-Seeing Interactive. All rights reserved. +// + +#import "ASIS3ObjectRequest.h" + +NSString *const ASIS3StorageClassStandard = @"STANDARD"; +NSString *const ASIS3StorageClassReducedRedundancy = @"REDUCED_REDUNDANCY"; + +@implementation ASIS3ObjectRequest + +- (ASIHTTPRequest *)HEADRequest +{ + ASIS3ObjectRequest *headRequest = (ASIS3ObjectRequest *)[super HEADRequest]; + [headRequest setKey:[self key]]; + [headRequest setBucket:[self bucket]]; + return headRequest; +} + ++ (id)requestWithBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [[[self alloc] initWithURL:nil] autorelease]; + [newRequest setBucket:theBucket]; + [newRequest setKey:theKey]; + return newRequest; +} + ++ (id)requestWithBucket:(NSString *)theBucket key:(NSString *)theKey subResource:(NSString *)theSubResource +{ + ASIS3ObjectRequest *newRequest = [[[self alloc] initWithURL:nil] autorelease]; + [newRequest setSubResource:theSubResource]; + [newRequest setBucket:theBucket]; + [newRequest setKey:theKey]; + return newRequest; +} + ++ (id)PUTRequestForData:(NSData *)data withBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [self requestWithBucket:theBucket key:theKey]; + [newRequest appendPostData:data]; + [newRequest setRequestMethod:@"PUT"]; + return newRequest; +} + ++ (id)PUTRequestForFile:(NSString *)filePath withBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [self requestWithBucket:theBucket key:theKey]; + [newRequest setPostBodyFilePath:filePath]; + [newRequest setShouldStreamPostDataFromDisk:YES]; + [newRequest setRequestMethod:@"PUT"]; + [newRequest setMimeType:[ASIHTTPRequest mimeTypeForFileAtPath:filePath]]; + return newRequest; +} + ++ (id)DELETERequestWithBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [self requestWithBucket:theBucket key:theKey]; + [newRequest setRequestMethod:@"DELETE"]; + return newRequest; +} + ++ (id)COPYRequestFromBucket:(NSString *)theSourceBucket key:(NSString *)theSourceKey toBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [self requestWithBucket:theBucket key:theKey]; + [newRequest setRequestMethod:@"PUT"]; + [newRequest setSourceBucket:theSourceBucket]; + [newRequest setSourceKey:theSourceKey]; + return newRequest; +} + ++ (id)HEADRequestWithBucket:(NSString *)theBucket key:(NSString *)theKey +{ + ASIS3ObjectRequest *newRequest = [self requestWithBucket:theBucket key:theKey]; + [newRequest setRequestMethod:@"HEAD"]; + return newRequest; +} + +- (id)copyWithZone:(NSZone *)zone +{ + ASIS3ObjectRequest *newRequest = [super copyWithZone:zone]; + [newRequest setBucket:[self bucket]]; + [newRequest setKey:[self key]]; + [newRequest setSourceBucket:[self sourceBucket]]; + [newRequest setSourceKey:[self sourceKey]]; + [newRequest setMimeType:[self mimeType]]; + [newRequest setSubResource:[self subResource]]; + [newRequest setStorageClass:[self storageClass]]; + return newRequest; +} + +- (void)dealloc +{ + [bucket release]; + [key release]; + [mimeType release]; + [sourceKey release]; + [sourceBucket release]; + [subResource release]; + [storageClass release]; + [super dealloc]; +} + +- (void)buildURL +{ + if ([self subResource]) { + [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@://%@.%@%@?%@",[self requestScheme],[self bucket],[[self class] S3Host],[ASIS3Request stringByURLEncodingForS3Path:[self key]],[self subResource]]]]; + } else { + [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@://%@.%@%@",[self requestScheme],[self bucket],[[self class] S3Host],[ASIS3Request stringByURLEncodingForS3Path:[self key]]]]]; + } +} + +- (NSString *)mimeType +{ + if (mimeType) { + return mimeType; + } else if ([self postBodyFilePath]) { + return [ASIHTTPRequest mimeTypeForFileAtPath:[self postBodyFilePath]]; + } else { + return @"application/octet-stream"; + } +} + +- (NSString *)canonicalizedResource +{ + if ([[self subResource] length] > 0) { + return [NSString stringWithFormat:@"/%@%@?%@",[self bucket],[ASIS3Request stringByURLEncodingForS3Path:[self key]], [self subResource]]; + } + return [NSString stringWithFormat:@"/%@%@",[self bucket],[ASIS3Request stringByURLEncodingForS3Path:[self key]]]; +} + +- (NSMutableDictionary *)S3Headers +{ + NSMutableDictionary *headers = [super S3Headers]; + if ([self sourceKey]) { + NSString *path = [ASIS3Request stringByURLEncodingForS3Path:[self sourceKey]]; + [headers setObject:[[self sourceBucket] stringByAppendingString:path] forKey:@"x-amz-copy-source"]; + } + if ([self storageClass]) { + [headers setObject:[self storageClass] forKey:@"x-amz-storage-class"]; + } + return headers; +} + +- (NSString *)stringToSignForHeaders:(NSString *)canonicalizedAmzHeaders resource:(NSString *)canonicalizedResource +{ + if ([[self requestMethod] isEqualToString:@"PUT"] && ![self sourceKey]) { + [self addRequestHeader:@"Content-Type" value:[self mimeType]]; + return [NSString stringWithFormat:@"PUT\n\n%@\n%@\n%@%@",[self mimeType],dateString,canonicalizedAmzHeaders,canonicalizedResource]; + } + return [super stringToSignForHeaders:canonicalizedAmzHeaders resource:canonicalizedResource]; +} + +@synthesize bucket; +@synthesize key; +@synthesize sourceBucket; +@synthesize sourceKey; +@synthesize mimeType; +@synthesize subResource; +@synthesize storageClass; +@end -- Gitblit v1.8.0