Commit 6410b193256954c952dc6e83c1957c70d1843ea3

Authored by 张旭
1 parent 60e6ae02

no message

Showing 375 changed files with 9564 additions and 0 deletions
KS3SDKDemo/Podfile.lock 0 → 100644
  1 +PODS:
  2 + - Ks3SDK (2.1.2)
  3 +
  4 +DEPENDENCIES:
  5 + - Ks3SDK (~> 2.1.2)
  6 +
  7 +SPEC CHECKSUMS:
  8 + Ks3SDK: 618377e9a5e058f41300812ef43cca69b49f20f4
  9 +
  10 +PODFILE CHECKSUM: 452e6c12f4104b6be74790ccc8dfbd2a937cba81
  11 +
  12 +COCOAPODS: 1.1.1
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AbortMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AbortMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AbstractPutRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AbstractWebServiceClient.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AccessControlList.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3AuthUtils.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Bucket.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3BucketACLResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3BucketACLXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3BucketNameUtilities.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3BucketObject.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Client.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ClientException.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3CompleteMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3CompleteMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3CompleteMultipartUploadResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Constants.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Constants.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3CreateBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3CreateBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Credentials.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3DeleteBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3DeleteBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3DeleteObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3DeleteObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3DownLoad.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ErrorHandler.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetBucketLoggingRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetBucketLoggingResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetObjectACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetObjectACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GetObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Grant.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3GrantAccessControlList.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3HeadBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3HeadBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3HeadObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3HeadObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3InitiateMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3InitiateMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3InitiateMultipartUploadResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3InitiateMultipartUploadXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListBucketsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListBucketsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListBucketsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListBucketsXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListObjectsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListObjectsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListObjectsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListObjectsXMLPrarser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListPartsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListPartsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListPartsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ListPartsResultXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3MD5Util.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3MultipartUpload.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ObjectACLXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ObjectSummary.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Owner.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Part.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3PutObjectCopyRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3PutObjectCopyResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3PutObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3PutObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Request.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Response.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ResponseHeaderOverrides.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SDKUtil.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ServiceRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3ServiceResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetBucketLoggingRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetBucketLoggingResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetGrantACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetGrantACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetObjectACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetObjectACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetObjectGrantACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3SetObjectGrantACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3URLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3Upload.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3UploadManager.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3UploadPartRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3UploadPartResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3UploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3WebServiceClient.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Private/Ks3SDK/KS3YunSDK.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AbortMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AbortMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AbstractPutRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AbstractWebServiceClient.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AccessControlList.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3AuthUtils.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Bucket.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3BucketACLResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3BucketACLXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3BucketNameUtilities.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3BucketObject.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Client.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ClientException.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3CompleteMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3CompleteMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3CompleteMultipartUploadResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Constants.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Constants.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3CreateBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3CreateBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Credentials.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3DeleteBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3DeleteBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3DeleteObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3DeleteObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3DownLoad.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ErrorHandler.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetBucketLoggingRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetBucketLoggingResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetObjectACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetObjectACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GetObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Grant.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3GrantAccessControlList.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3HeadBucketRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3HeadBucketResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3HeadObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3HeadObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3InitiateMultipartUploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3InitiateMultipartUploadResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3InitiateMultipartUploadResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3InitiateMultipartUploadXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListBucketsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListBucketsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListBucketsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListBucketsXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListObjectsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListObjectsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListObjectsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListObjectsXMLPrarser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListPartsRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListPartsResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListPartsResult.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ListPartsResultXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3MD5Util.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3MultipartUpload.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ObjectACLXMLParser.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ObjectSummary.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Owner.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Part.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3PutObjectCopyRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3PutObjectCopyResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3PutObjectRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3PutObjectResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Request.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Response.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ResponseHeaderOverrides.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SDKUtil.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ServiceRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3ServiceResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetBucketLoggingRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetBucketLoggingResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetGrantACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetGrantACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetObjectACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetObjectACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetObjectGrantACLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3SetObjectGrantACLResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3URLRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3Upload.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3UploadManager.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3UploadPartRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3UploadPartResponse.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3UploadRequest.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3WebServiceClient.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Headers/Public/Ks3SDK/KS3YunSDK.h 0 → 120000
  1 +../../../Ks3SDK/KS3YunSDK/KS3YunSDK.h
0 2 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK.h 0 → 100644
  1 +//
  2 +// KS3YunSDK.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/18/14.
  6 +// Copyright (c) 2014 KS3. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +#ifdef __OBJC__
  11 +
  12 +//! Project version number for KS3YunSDK.
  13 +FOUNDATION_EXPORT double KS3YunSDKVersionNumber;
  14 +
  15 +//! Project version string for KS3YunSDK.
  16 +FOUNDATION_EXPORT const unsigned char KS3YunSDKVersionString[];
  17 +
  18 +// In this header, you should import all the public headers of your framework
  19 +// using statements like #import <KS3YunSDK/PublicHeader.h>
  20 +#import "KS3AbortMultipartUploadRequest.h"
  21 +#import "KS3AbortMultipartUploadResponse.h"
  22 +#import "KS3AbstractPutRequest.h"
  23 +#import "KS3AbstractWebServiceClient.h"
  24 +#import "KS3AccessControlList.h"
  25 +#import "KS3AuthUtils.h"
  26 +#import "KS3Bucket.h"
  27 +#import "KS3BucketACLResult.h"
  28 +#import "KS3BucketACLXMLParser.h"
  29 +#import "KS3BucketNameUtilities.h"
  30 +#import "KS3BucketObject.h"
  31 +#import "KS3Client.h"
  32 +#import "KS3ClientException.h"
  33 +#import "KS3CompleteMultipartUploadRequest.h"
  34 +#import "KS3CompleteMultipartUploadResponse.h"
  35 +#import "KS3CompleteMultipartUploadResult.h"
  36 +#import "KS3Constants.h"
  37 +#import "KS3CreateBucketRequest.h"
  38 +#import "KS3CreateBucketResponse.h"
  39 +#import "KS3Credentials.h"
  40 +#import "KS3DeleteBucketRequest.h"
  41 +#import "KS3DeleteBucketResponse.h"
  42 +#import "KS3DeleteObjectRequest.h"
  43 +#import "KS3DeleteObjectResponse.h"
  44 +#import "KS3DownLoad.h"
  45 +#import "KS3ErrorHandler.h"
  46 +#import "KS3GetACLRequest.h"
  47 +#import "KS3GetACLResponse.h"
  48 +#import "KS3GetBucketLoggingRequest.h"
  49 +#import "KS3GetBucketLoggingResponse.h"
  50 +#import "KS3GetObjectACLRequest.h"
  51 +#import "KS3GetObjectACLResponse.h"
  52 +#import "KS3GetObjectRequest.h"
  53 +#import "KS3GetObjectResponse.h"
  54 +#import "KS3Grant.h"
  55 +#import "KS3GrantAccessControlList.h"
  56 +#import "KS3HeadBucketRequest.h"
  57 +#import "KS3HeadBucketResponse.h"
  58 +#import "KS3HeadObjectRequest.h"
  59 +#import "KS3HeadObjectResponse.h"
  60 +#import "KS3InitiateMultipartUploadRequest.h"
  61 +#import "KS3InitiateMultipartUploadResponse.h"
  62 +#import "KS3InitiateMultipartUploadResult.h"
  63 +#import "KS3InitiateMultipartUploadXMLParser.h"
  64 +#import "KS3ListBucketsRequest.h"
  65 +#import "KS3ListBucketsResponse.h"
  66 +#import "KS3ListBucketsResult.h"
  67 +#import "KS3ListBucketsXMLParser.h"
  68 +#import "KS3ListObjectsRequest.h"
  69 +#import "KS3ListObjectsResponse.h"
  70 +#import "KS3ListObjectsResult.h"
  71 +#import "KS3ListObjectsXMLPrarser.h"
  72 +#import "KS3ListPartsRequest.h"
  73 +#import "KS3ListPartsResponse.h"
  74 +#import "KS3ListPartsResult.h"
  75 +#import "KS3ListPartsResultXMLParser.h"
  76 +#import "KS3MD5Util.h"
  77 +#import "KS3MultipartUpload.h"
  78 +#import "KS3ObjectACLXMLParser.h"
  79 +#import "KS3ObjectSummary.h"
  80 +#import "KS3Owner.h"
  81 +#import "KS3Part.h"
  82 +#import "KS3PutObjectCopyRequest.h"
  83 +#import "KS3PutObjectCopyResponse.h"
  84 +#import "KS3PutObjectRequest.h"
  85 +#import "KS3PutObjectResponse.h"
  86 +#import "KS3Request.h"
  87 +#import "KS3Response.h"
  88 +#import "KS3ResponseHeaderOverrides.h"
  89 +#import "KS3SDKUtil.h"
  90 +#import "KS3ServiceRequest.h"
  91 +#import "KS3ServiceResponse.h"
  92 +#import "KS3SetACLRequest.h"
  93 +#import "KS3SetACLResponse.h"
  94 +#import "KS3SetBucketLoggingRequest.h"
  95 +#import "KS3SetBucketLoggingResponse.h"
  96 +#import "KS3SetGrantACLRequest.h"
  97 +#import "KS3SetGrantACLResponse.h"
  98 +#import "KS3SetObjectACLRequest.h"
  99 +#import "KS3SetObjectACLResponse.h"
  100 +#import "KS3SetObjectGrantACLRequest.h"
  101 +#import "KS3SetObjectGrantACLResponse.h"
  102 +#import "KS3URLRequest.h"
  103 +#import "KS3UploadPartRequest.h"
  104 +#import "KS3UploadPartResponse.h"
  105 +#import "KS3WebServiceClient.h"
  106 +#import "KS3UploadManager.h"
  107 +#import "KS3Upload.h"
  108 +#import "KS3UploadRequest.h"
  109 +#endif
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.h 0 → 100644
  1 +//
  2 +// KSS3AbstractPutRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +@interface KS3AbstractPutRequest : KS3Request
  11 +
  12 +- (void)addMetadataWithValue:(NSString *)value forKey:(NSString *)aKey;
  13 +
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.m 0 → 100644
  1 +//
  2 +// KSS3AbstractPutRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbstractPutRequest.h"
  10 +
  11 +@implementation KS3AbstractPutRequest
  12 +
  13 +- (void)addMetadataWithValue:(NSString *)value forKey:(NSString *)aKey {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.h 0 → 100644
  1 +//
  2 +// KingSoftAbstractWebServiceClient.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3AbstractWebServiceClient : NSObject
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.m 0 → 100644
  1 +//
  2 +// KingSoftAbstractWebServiceClient.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbstractWebServiceClient.h"
  10 +
  11 +@implementation KS3AbstractWebServiceClient
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.h 0 → 100644
  1 +//
  2 +// KingSoftAuthUtils.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AuthUtils.h"
  10 +#import <Foundation/Foundation.h>
  11 +typedef enum {
  12 + KSS3_HTTPVerbGet,
  13 + KSS3_HTTPVerbPost,
  14 + KSS3_HTTPVerbPut,
  15 + KSS3_HTTPVerbDelete,
  16 + KSS3_HTTPVerbHead,
  17 +} KSS3_HTTPVerbType;
  18 +
  19 +@class KS3ServiceRequest;
  20 +@class KS3Credentials;
  21 +@class KS3URLRequest;
  22 +
  23 +@interface KS3AuthUtils : NSObject
  24 +
  25 ++ (NSString *)KSYSignatureWithSecretKey:(NSString *)secretKey
  26 + httpVerb:(NSString *)httpVerb
  27 + contentMd5:(NSString *)strContentMd5
  28 + contentType:(NSString *)strContentType
  29 + date:(NSDate *)date
  30 + canonicalizedKssHeader:(NSString *)strHeaders
  31 + canonicalizedResource:(NSString *)strResource;
  32 +
  33 ++ (NSString *)KSYSignatureWithSecretKey:(NSString *)secretKey
  34 + httpVerb:(NSString *)httpVerb
  35 + contentMd5:(NSString *)strContentMd5
  36 + contentType:(NSString *)strContentType
  37 + strDate:(NSString *)strDate
  38 + canonicalizedKssHeader:(NSString *)strHeaders
  39 + canonicalizedResource:(NSString *)strResource;
  40 +
  41 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  42 + secretKey:(NSString *)secretKey
  43 + httpVerbType:(KSS3_HTTPVerbType)httpVerb
  44 + contentMd5:(NSString *)strContentMd5
  45 + contentType:(NSString *)strContentType
  46 + date:(NSDate *)date
  47 + canonicalizedKssHeader:(NSString *)strHeaders
  48 + canonicalizedResource:(NSString *)strResource;
  49 +
  50 ++ (NSString *)strDateWithDate:(NSDate *)date andType:(NSString *)strType;
  51 +
  52 ++ (void)signRequestV4:(KS3ServiceRequest *)serviceRequest
  53 + urlRequest:(KS3URLRequest *)urlRequest
  54 + headers:(NSMutableDictionary *)headers
  55 + payload:(NSString *)payload
  56 + credentials:(KS3Credentials *)credentials;
  57 +
  58 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  59 + secretKey:(NSString *)secretKey
  60 + httpVerb:(NSString *)httpVerb
  61 + contentMd5:(NSString *)strContentMd5
  62 + contentType:(NSString *)strContentType
  63 + date:(NSDate *)date
  64 + canonicalizedKssHeader:(NSString *)strHeaders
  65 + canonicalizedResource:(NSString *)strResource;
  66 +
  67 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  68 + secretKey:(NSString *)secretKey
  69 + httpVerb:(NSString *)httpVerb
  70 + contentMd5:(NSString *)strContentMd5
  71 + contentType:(NSString *)strContentType
  72 + strDate:(NSString *)strDate
  73 + canonicalizedKssHeader:(NSString *)strHeaders
  74 + canonicalizedResource:(NSString *)strResource;
  75 +
  76 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.m 0 → 100644
  1 +//
  2 +// KingSoftAuthUtils.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AuthUtils.h"
  10 +#import "KS3Constants.h"
  11 +#import "KS3MD5Util.h"
  12 +#import "KS3ServiceRequest.h"
  13 +
  14 +@implementation KS3AuthUtils
  15 +
  16 ++ (NSString *)strAuthorizationWithHTTPVerb:(NSString *)accessKey
  17 + secretKey:(NSString *)secretKey
  18 + httpVerb:(KSS3_HTTPVerbType)httpVerb
  19 + contentMd5:(NSString *)strContentMd5
  20 + contentType:(NSString *)strContentType
  21 + date:(NSDate *)date
  22 + canonicalizedKssHeader:(NSString *)strHeaders
  23 + canonicalizedResource:(NSString *)strResource {
  24 + NSString *strAuthorization = @"KSS ";
  25 + strAuthorization = [strAuthorization stringByAppendingString:accessKey];
  26 + strAuthorization = [strAuthorization stringByAppendingString:@":"];
  27 + NSString *strSignature = [self strSignatureWithHTTPVerb:secretKey
  28 + httpVerb:httpVerb
  29 + contentMd5:strContentMd5
  30 + contentType:strContentType
  31 + date:date
  32 + canonicalizedKssHeader:strHeaders
  33 + canonicalizedResource:strResource];
  34 + strAuthorization = [strAuthorization stringByAppendingString:strSignature];
  35 + return strAuthorization;
  36 +}
  37 +
  38 ++ (NSString *)strSignatureWithHTTPVerb:(NSString *)secretKey
  39 + httpVerb:(KSS3_HTTPVerbType)httpVerb
  40 + contentMd5:(NSString *)strContentMd5
  41 + contentType:(NSString *)strContentType
  42 + date:(NSDate *)date
  43 + canonicalizedKssHeader:(NSString *)strHeaders
  44 + canonicalizedResource:(NSString *)strResource {
  45 + // **** Http verb
  46 + NSString *strHttpVerb = @"GET";
  47 + switch (httpVerb) {
  48 + case KSS3_HTTPVerbGet:
  49 + strHttpVerb = @"GET";
  50 + break;
  51 + case KSS3_HTTPVerbPost:
  52 + strHttpVerb = @"POST";
  53 + break;
  54 + case KSS3_HTTPVerbPut:
  55 + strHttpVerb = @"PUT";
  56 + break;
  57 + case KSS3_HTTPVerbDelete:
  58 + strHttpVerb = @"DELETE";
  59 + break;
  60 + default:
  61 + break;
  62 + }
  63 + strHttpVerb = [strHttpVerb stringByAppendingString:@"\n"];
  64 +
  65 + // **** Content md5
  66 + strContentMd5 = [strContentMd5 stringByAppendingString:@"\n"];
  67 +
  68 + // **** Content type
  69 + strContentType = [strContentType stringByAppendingString:@"\n"];
  70 +
  71 + // **** Date
  72 + NSString *strDate = [self strDateWithDate:date andType:@"GMT"];
  73 + strDate = [strDate stringByAppendingString:@"\n"];
  74 +
  75 + // **** Header & Resource
  76 + // strHeaders = [strHeaders stringByAppendingString:@"\n"];
  77 +
  78 + // **** Signature
  79 + NSString *strToSig = [strHttpVerb stringByAppendingString:strContentMd5];
  80 + strToSig = [strToSig stringByAppendingString:strContentType];
  81 + strToSig = [strToSig stringByAppendingString:strDate];
  82 + strToSig = [strToSig stringByAppendingString:strHeaders];
  83 + strToSig = [strToSig stringByAppendingString:strResource];
  84 + strToSig = [KS3MD5Util hexEncode:secretKey text:strToSig];
  85 + return strToSig;
  86 +}
  87 +
  88 ++ (NSString *)strDateWithDate:(NSDate *)date andType:(NSString *)strType {
  89 + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  90 + dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
  91 + [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
  92 + [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss"];
  93 + NSString *str = [dateFormatter stringFromDate:date];
  94 + NSString *strTime = [str stringByAppendingFormat:@" %@", strType];
  95 + return strTime;
  96 +}
  97 +
  98 ++ (NSString *)KSYSignatureWithSecretKey:(NSString *)secretKey
  99 + httpVerb:(NSString *)httpVerb
  100 + contentMd5:(NSString *)strContentMd5
  101 + contentType:(NSString *)strContentType
  102 + date:(NSDate *)date
  103 + canonicalizedKssHeader:(NSString *)strHeaders
  104 + canonicalizedResource:(NSString *)strResource {
  105 + return [KS3AuthUtils KSYSignatureWithSecretKey:secretKey
  106 + httpVerb:httpVerb
  107 + contentMd5:strContentMd5
  108 + contentType:strContentType
  109 + strDate:[self strDateWithDate:date andType:@"GMT"]
  110 + canonicalizedKssHeader:strHeaders
  111 + canonicalizedResource:strResource];
  112 +}
  113 +
  114 ++ (NSString *)KSYSignatureWithSecretKey:(NSString *)secretKey
  115 + httpVerb:(NSString *)httpVerb
  116 + contentMd5:(NSString *)strContentMd5
  117 + contentType:(NSString *)strContentType
  118 + strDate:(NSString *)strDate
  119 + canonicalizedKssHeader:(NSString *)strHeaders
  120 + canonicalizedResource:(NSString *)strResource {
  121 + // **** Signature
  122 + NSString *strToSig = httpVerb;
  123 + strToSig = [strToSig stringByAppendingString:@"\n"];
  124 +
  125 + if(strContentMd5) {
  126 + strToSig = [strToSig stringByAppendingString:strContentMd5];
  127 + }
  128 + strToSig = [strToSig stringByAppendingString:@"\n"];
  129 +
  130 + if(strContentType) {
  131 + strToSig = [strToSig stringByAppendingString:strContentType];
  132 + }
  133 + strToSig = [strToSig stringByAppendingString:@"\n"];
  134 +
  135 + strToSig = [strToSig stringByAppendingString:strDate];
  136 + strToSig = [strToSig stringByAppendingString:@"\n"];
  137 +
  138 + if ([strHeaders stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length > 0) {
  139 + strToSig = [strToSig stringByAppendingString:strHeaders];
  140 + strToSig = [strToSig stringByAppendingString:@"\n"];
  141 + }
  142 +
  143 + strToSig = [strToSig stringByAppendingString:strResource];
  144 +
  145 + NSLog(@"StringToSign: %@", strToSig);
  146 +
  147 + strToSig = [KS3MD5Util hexEncode:secretKey text:strToSig];
  148 + return strToSig;
  149 +}
  150 +
  151 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  152 + secretKey:(NSString *)secretKey
  153 + httpVerbType:(KSS3_HTTPVerbType)httpVerb
  154 + contentMd5:(NSString *)strContentMd5
  155 + contentType:(NSString *)strContentType
  156 + date:(NSDate *)date
  157 + canonicalizedKssHeader:(NSString *)strHeaders
  158 + canonicalizedResource:(NSString *)strResource {
  159 + NSString *strHttpVerb = @"GET";
  160 + switch (httpVerb) {
  161 + case KSS3_HTTPVerbGet:
  162 + strHttpVerb = @"GET";
  163 + break;
  164 + case KSS3_HTTPVerbPost:
  165 + strHttpVerb = @"POST";
  166 + break;
  167 + case KSS3_HTTPVerbPut:
  168 + strHttpVerb = @"PUT";
  169 + break;
  170 + case KSS3_HTTPVerbDelete:
  171 + strHttpVerb = @"DELETE";
  172 + break;
  173 + default:
  174 + break;
  175 + }
  176 +
  177 + return [self KSYAuthorizationWithAccessKey:accessKey
  178 + secretKey:secretKey
  179 + httpVerb:strHttpVerb
  180 + contentMd5:strContentMd5
  181 + contentType:strContentType
  182 + date:date
  183 + canonicalizedKssHeader:strHeaders
  184 + canonicalizedResource:strResource];
  185 +}
  186 +
  187 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  188 + secretKey:(NSString *)secretKey
  189 + httpVerb:(NSString *)httpVerb
  190 + contentMd5:(NSString *)strContentMd5
  191 + contentType:(NSString *)strContentType
  192 + date:(NSDate *)date
  193 + canonicalizedKssHeader:(NSString *)strHeaders
  194 + canonicalizedResource:(NSString *)strResource {
  195 + NSString *strAuthorization = @"KSS ";
  196 + strAuthorization = [strAuthorization stringByAppendingString:accessKey];
  197 + strAuthorization = [strAuthorization stringByAppendingString:@":"];
  198 + NSString *strSignature = [self KSYSignatureWithSecretKey:secretKey
  199 + httpVerb:httpVerb
  200 + contentMd5:strContentMd5
  201 + contentType:strContentType
  202 + date:date
  203 + canonicalizedKssHeader:strHeaders
  204 + canonicalizedResource:strResource];
  205 + strAuthorization = [strAuthorization stringByAppendingString:strSignature];
  206 + return strAuthorization;
  207 +}
  208 +
  209 ++ (NSString *)KSYAuthorizationWithAccessKey:(NSString *)accessKey
  210 + secretKey:(NSString *)secretKey
  211 + httpVerb:(NSString *)httpVerb
  212 + contentMd5:(NSString *)strContentMd5
  213 + contentType:(NSString *)strContentType
  214 + strDate:(NSString *)strDate
  215 + canonicalizedKssHeader:(NSString *)strHeaders
  216 + canonicalizedResource:(NSString *)strResource {
  217 + NSString *strAuthorization = @"KSS ";
  218 + strAuthorization = [strAuthorization stringByAppendingString:accessKey];
  219 + strAuthorization = [strAuthorization stringByAppendingString:@":"];
  220 + NSString *strSignature = [self KSYSignatureWithSecretKey:secretKey
  221 + httpVerb:httpVerb
  222 + contentMd5:strContentMd5
  223 + contentType:strContentType
  224 + strDate:strDate
  225 + canonicalizedKssHeader:strHeaders
  226 + canonicalizedResource:strResource];
  227 + strAuthorization = [strAuthorization stringByAppendingString:strSignature];
  228 + return strAuthorization;
  229 +}
  230 +
  231 ++ (void)signRequestV4:(KS3ServiceRequest *)serviceRequest
  232 + urlRequest:(KS3URLRequest *)urlRequest
  233 + headers:(NSMutableDictionary *)headers
  234 + payload:(NSString *)payload
  235 + credentials:(KS3Credentials *)credentials {
  236 + [urlRequest setValue:serviceRequest.strDate forHTTPHeaderField:@"Date"];
  237 + NSString *strAuthorization = @"";
  238 + if (credentials.accessKey != nil && credentials.secretKey != nil) {
  239 + strAuthorization = [KS3AuthUtils
  240 + KSYAuthorizationWithAccessKey:serviceRequest.credentials.accessKey
  241 + secretKey:serviceRequest.credentials.secretKey
  242 + httpVerb:serviceRequest.httpMethod
  243 + contentMd5:serviceRequest.contentMd5
  244 + contentType:serviceRequest.contentType
  245 + date:serviceRequest.requestDate
  246 + canonicalizedKssHeader:serviceRequest.kSYHeader
  247 + canonicalizedResource:serviceRequest.kSYResource];
  248 + }
  249 + [urlRequest setValue:strAuthorization forHTTPHeaderField:@"Authorization"];
  250 + [urlRequest setURL:[NSURL URLWithString:serviceRequest.host]];
  251 + [urlRequest setHTTPMethod:serviceRequest.httpMethod];
  252 +}
  253 +
  254 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.h 0 → 100644
  1 +//
  2 +// KS3ClientException.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/22/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3ClientException : NSException
  12 +
  13 +@property(strong, nonatomic) NSString *message;
  14 +
  15 +@property(strong, nonatomic) NSError *error;
  16 +
  17 ++ (id)exceptionWithMessage:(NSString *)theMessage;
  18 +
  19 ++ (id)exceptionWithMessage:(NSString *)theMessage andError:(NSError *)theError;
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.m 0 → 100644
  1 +//
  2 +// KS3ClientException.m
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/22/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ClientException.h"
  10 +
  11 +@implementation KS3ClientException
  12 +
  13 ++ (id)exceptionWithMessage:(NSString *)theMessage {
  14 + KS3ClientException *e =
  15 + [[[self class] alloc] initWithName:@"KS3ClientException"
  16 + reason:theMessage
  17 + userInfo:nil];
  18 + e.error = nil;
  19 + e.message = theMessage;
  20 +
  21 + return e;
  22 +}
  23 +
  24 ++ (id)exceptionWithMessage:(NSString *)theMessage andError:(NSError *)theError {
  25 + KS3ClientException *e =
  26 + [[[self class] alloc] initWithName:@"KS3ClientException"
  27 + reason:theMessage
  28 + userInfo:nil];
  29 + e.error = theError;
  30 + e.message = theMessage;
  31 +
  32 + return e;
  33 +}
  34 +
  35 +- (id)initWithMessage:(NSString *)theMessage {
  36 + self =
  37 + [super initWithName:@"KS3ClientException" reason:theMessage userInfo:nil];
  38 + if (self) {
  39 + _message = theMessage;
  40 + }
  41 + return self;
  42 +}
  43 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Constants.h 0 → 100644
  1 +//
  2 +// KS3Constants.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/22/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#ifndef KS3YunSDK_KS3Constants_h
  10 +#define KS3YunSDK_KS3Constants_h
  11 +
  12 +#define kHttpMethodPut @"PUT"
  13 +#define kHttpMethodGet @"GET"
  14 +#define kHttpMethodHead @"HEAD"
  15 +#define kHttpMethodPost @"POST"
  16 +#define kHttpMethodDelete @"DELETE"
  17 +#define kHttpHdrHost @"Host"
  18 +
  19 +#define kKS3QueryParamPrefix @"prefix"
  20 +#define kKS3QueryParamMarker @"marker"
  21 +#define kKS3QueryParamDelimiter @"delimiter"
  22 +#define kKS3QueryParamMaxKeys @"max-keys"
  23 +#define kKS3QueryParamEncodingType @"encoding-type"
  24 +#define kKS3QueryParamResponseContentType @"response-content-type"
  25 +#define kKS3QueryParamResponseContentLanguage @"response-content-language"
  26 +#define kKS3QueryParamResponseExpires @"response-expires"
  27 +#define kKS3QueryParamResponseCacheControl @"response-cache-control"
  28 +#define kKS3QueryParamResponseContentDisposition @"response-content-disposition"
  29 +#define kKS3QueryParamResponseContentEncoding @"response-content-encoding"
  30 +
  31 +#define kKS3HttpHdrContentMD5 @"Content-MD5"
  32 +
  33 +#define kKS3SubResourceUploads @"uploads"
  34 +#define kKSHttpHdrContentEncoding @"Content-Encoding"
  35 +#define kKSHttpHdrContentDisposition @"Content-Disposition"
  36 +#define kKSHttpHdrCacheControl @"Cache-Control"
  37 +#define kKSHttpHdrContentLength @"Content-Length"
  38 +#define kKSHttpHdrContentType @"Content-Type"
  39 +#define kKSHttpHdrRange @"Range"
  40 +#define kKSHttpHdrIfModifiedSince @"If-Modified-Since"
  41 +#define kKSHttpHdrIfUnmodifiedSince @"If-Unmodified-Since"
  42 +#define kKSHttpHdrIfMatch @"If-Match"
  43 +#define kKSHttpHdrIfNoneMatch @"If-None-Match"
  44 +
  45 +#define kKS3QueryParamPartNumber @"partNumber"
  46 +#define kKS3QueryParamUploadId @"uploadId"
  47 +#define kKS3QueryParamMaxParts @"max-parts"
  48 +#define kKS3QueryParamPartNumberMarker @"part-number-marker"
  49 +
  50 +#endif
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.h 0 → 100644
  1 +//
  2 +// KingSoftCredentials.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3Credentials : NSObject
  12 +
  13 +@property(strong, readonly, nonatomic) NSString *accessKey;
  14 +@property(strong, readonly, nonatomic) NSString *secretKey;
  15 +
  16 +- (id)initWithAccessKey:(NSString *)accessKey
  17 + withSecretKey:(NSString *)secretKey;
  18 +
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.m 0 → 100644
  1 +//
  2 +// KingSoftCredentials.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Credentials.h"
  10 +
  11 +@implementation KS3Credentials
  12 +
  13 +- (id)init {
  14 + self = [super init];
  15 + if (self) {
  16 + _accessKey = nil;
  17 + _secretKey = nil;
  18 + }
  19 + return self;
  20 +}
  21 +
  22 +- (id)initWithAccessKey:(NSString *)accessKey
  23 + withSecretKey:(NSString *)secretKey {
  24 + self = [super init];
  25 + if (self) {
  26 + _accessKey = accessKey;
  27 + _secretKey = secretKey;
  28 + NSLog(@"##### 初始化本地AK/SK #####");
  29 + }
  30 + return self;
  31 +}
  32 +
  33 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.h 0 → 100644
  1 +//
  2 +// KS3ErrorHandler.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/23/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +extern NSString *const KS3iOSSDKServiceErrorDomain;
  12 +extern NSString *const KS3iOSSDKClientErrorDomain;
  13 +
  14 +@interface KS3ErrorHandler : NSObject
  15 ++ (void)shouldThrowExceptions __attribute__((deprecated));
  16 ++ (void)shouldNotThrowExceptions;
  17 ++ (BOOL)throwsExceptions;
  18 ++ (NSError *)errorFromExceptionWithThrowsExceptionOption:
  19 + (NSException *)exception;
  20 ++ (NSError *)errorFromException:(NSException *)exception;
  21 ++ (NSError *)errorFromException:(NSException *)exception
  22 + serviceErrorDomain:(NSString *)serviceErrorDomain
  23 + clientErrorDomain:(NSString *)clientErrorDomain;
  24 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.m 0 → 100644
  1 +//
  2 +// KS3ErrorHandler.m
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/23/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +// Public Constants
  10 +#import "KS3ErrorHandler.h"
  11 +#import "KS3ClientException.h"
  12 +
  13 +NSString *const KS3iOSSDKServiceErrorDomain =
  14 + @"com.ks3yun.iossdk.ServiceErrorDomain";
  15 +NSString *const KS3iOSSDKClientErrorDomain =
  16 + @"com.ks3yun.iossdk.ClientErrorDomain";
  17 +static BOOL throwsExceptions = NO;
  18 +
  19 +@implementation KS3ErrorHandler
  20 +
  21 ++ (void)shouldThrowExceptions {
  22 + throwsExceptions = YES;
  23 +}
  24 +
  25 ++ (void)shouldNotThrowExceptions {
  26 + throwsExceptions = NO;
  27 +}
  28 +
  29 ++ (BOOL)throwsExceptions {
  30 + return throwsExceptions;
  31 +}
  32 +
  33 ++ (NSError *)errorFromExceptionWithThrowsExceptionOption:
  34 + (NSException *)exception {
  35 + if (exception == nil) {
  36 + return nil;
  37 + } else if (throwsExceptions == YES) {
  38 + @throw exception;
  39 + } else if (![exception isKindOfClass:[KS3ClientException class]]) {
  40 + // Fatal error. This should not happen.
  41 + @throw exception;
  42 + }
  43 +
  44 + return [KS3ErrorHandler errorFromException:exception];
  45 +}
  46 +
  47 ++ (NSError *)errorFromException:(NSException *)exception
  48 + serviceErrorDomain:(NSString *)serviceErrorDomain
  49 + clientErrorDomain:(NSString *)clientErrorDomain {
  50 + NSError *error = nil;
  51 +
  52 + if ([exception isKindOfClass:[KS3ClientException class]]) {
  53 + KS3ClientException *clientException = (KS3ClientException *)exception;
  54 +
  55 + if (clientException.error != nil) {
  56 + error = clientException.error;
  57 + } else {
  58 + NSDictionary *userInfo = [NSDictionary
  59 + dictionaryWithObjectsAndKeys:clientException.message, @"message",
  60 + clientException, @"exception", nil];
  61 +
  62 + error =
  63 + [NSError errorWithDomain:clientErrorDomain code:-1 userInfo:userInfo];
  64 + }
  65 + }
  66 +
  67 + // Return nil for non Amazon exceptions.
  68 + return error;
  69 +}
  70 +
  71 ++ (NSError *)errorFromException:(NSException *)exception {
  72 + return [KS3ErrorHandler errorFromException:exception
  73 + serviceErrorDomain:KS3iOSSDKServiceErrorDomain
  74 + clientErrorDomain:KS3iOSSDKClientErrorDomain];
  75 +}
  76 +
  77 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.h 0 → 100644
  1 +//
  2 +// KingSoftMD5Util.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3MD5Util : NSObject
  12 ++ (NSString *)hexEncode:(NSString *)key text:(NSString *)text;
  13 +
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.m 0 → 100644
  1 +//
  2 +// KingSoftMD5Util.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MD5Util.h"
  10 +#import <CommonCrypto/CommonDigest.h>
  11 +#import <CommonCrypto/CommonHMAC.h>
  12 +
  13 +@implementation KS3MD5Util
  14 +
  15 ++ (NSString *)hexEncode:(NSString *)key text:(NSString *)text {
  16 + const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
  17 + const char *cData = [text cStringUsingEncoding:NSUTF8StringEncoding];
  18 + uint8_t cHMAC[CC_SHA1_DIGEST_LENGTH];
  19 + CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
  20 + NSData *HMAC =
  21 + [[NSData alloc] initWithBytes:cHMAC length:CC_SHA1_DIGEST_LENGTH];
  22 + NSString *strHash = @"";
  23 + if ([HMAC respondsToSelector:@selector(base64EncodedDataWithOptions:)]) {
  24 + strHash = [HMAC base64EncodedStringWithOptions:
  25 + NSDataBase64Encoding64CharacterLineLength];
  26 + } else {
  27 + strHash = [HMAC base64Encoding];
  28 + }
  29 +
  30 + return strHash;
  31 +}
  32 +
  33 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.h 0 → 100644
  1 +//
  2 +// S3Request.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ServiceRequest.h"
  10 +
  11 +@interface KS3Request : KS3ServiceRequest
  12 +@property(strong, nonatomic) NSString *bucket;
  13 +@property(nonatomic, assign) int64_t contentLength;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.m 0 → 100644
  1 +//
  2 +// S3Request.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +@implementation KS3Request
  11 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.h 0 → 100644
  1 +//
  2 +// S3Response.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +#import "KS3ServiceResponse.h"
  9 +@interface KS3Response : KS3ServiceResponse
  10 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.m 0 → 100644
  1 +//
  2 +// S3Response.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@implementation KS3Response
  11 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.h 0 → 100644
  1 +//
  2 +// KingSoftSDKUtil.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +extern NSString *const KSYS3DefaultRunLoopMode;
  11 +@interface KS3SDKUtil : NSObject
  12 +NSDate *getCurrentDate();
  13 ++ (NSString *)base64md5FromData:(NSData *)data;
  14 ++ (NSString *)urlEncode:(NSString *)input;
  15 ++ (NSString *)applicationDocumentFilePath;
  16 ++ (BOOL)isIpString:(NSString *)aString;
  17 ++ (BOOL)isVaildBucketName:(NSString *)bucket;
  18 +@end
  19 +
  20 +@interface NSData (WithBase64)
  21 +
  22 +/**
  23 + * Return a base64 encoded representation of the data.
  24 + *
  25 + * @return base64 encoded representation of the data.
  26 + */
  27 +- (NSString *)base64EncodedString;
  28 +
  29 +/**
  30 + * Decode a base-64 encoded string into a new NSData object.
  31 + *
  32 + * @param encodedString an base-64 encoded string
  33 + *
  34 + * @return NSData with the data represented by the encoded string.
  35 + */
  36 ++ (NSData *)dataWithBase64EncodedString:(NSString *)encodedString;
  37 +
  38 +@end
  39 +@interface NSString (Md5)
  40 +- (NSString *)MD5Hash;
  41 +@end
0 42 \ No newline at end of file
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.m 0 → 100644
  1 +//
  2 +// KingSoftSDKUtil.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SDKUtil.h"
  10 +//#import "RegexKitLite.h"
  11 +#import <CommonCrypto/CommonDigest.h>
  12 +static char base64EncodingTable[] =
  13 + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  14 +
  15 +static const short base64DecodingTable[] = {
  16 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -2, -1, -1, -2, -2, -2, -2, -2,
  17 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2,
  18 + -2, -2, -2, -2, -2, 62, -2, -2, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60,
  19 + 61, -2, -2, -2, -2, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
  20 + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2,
  21 + -2, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
  22 + 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  23 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  24 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  25 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  26 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  27 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  28 + -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
  29 + -2, -2, -2, -2, -2, -2, -2, -2, -2};
  30 +NSString *const KSYS3DefaultRunLoopMode = @"com.ksyun.DefaultRunLoopMode";
  31 +@implementation KS3SDKUtil
  32 +NSDate *getCurrentDate() { return [NSDate date]; }
  33 ++ (NSString *)base64md5FromData:(NSData *)data {
  34 +
  35 + const void *cStr = [data bytes];
  36 + unsigned char result[CC_MD5_DIGEST_LENGTH];
  37 +
  38 + CC_MD5(cStr, (uint32_t)[data length], result);
  39 +
  40 + NSData *md5 =
  41 + [[NSData alloc] initWithBytes:result length:CC_MD5_DIGEST_LENGTH];
  42 + return [md5 base64EncodedString];
  43 +}
  44 ++ (NSString *)urlEncode:(NSString *)input {
  45 + NSString *encoded =
  46 + (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(
  47 + NULL, (CFStringRef)input, NULL,
  48 + (CFStringRef) @"!*'\"();:@&=+$,/?%#[]% ", kCFStringEncodingUTF8));
  49 + return encoded;
  50 +}
  51 ++ (NSString *)applicationDocumentFilePath {
  52 + NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(
  53 + NSDocumentDirectory, NSUserDomainMask, YES);
  54 + return documentPaths[0];
  55 +}
  56 +
  57 ++ (BOOL)isIpString:(NSString *)aString {
  58 + NSString *regex = @"(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|"
  59 + @"2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]"
  60 + @")\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
  61 + NSPredicate *pred =
  62 + [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
  63 + BOOL isMatch = [pred evaluateWithObject:aString];
  64 + return isMatch;
  65 +
  66 + // NSString *regex =
  67 + // @"(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
  68 + // return [aString isMatchedByRegex:regex];
  69 +}
  70 +
  71 ++ (BOOL)isVaildBucketName:(NSString *)bucket {
  72 + NSString *strReg5 = @"^[a-z0-9-.]+$";
  73 + NSPredicate *pred =
  74 + [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strReg5];
  75 + BOOL isMatch = [pred evaluateWithObject:bucket];
  76 + return !isMatch;
  77 +
  78 + // NSString *strReg5 = @"^[a-z0-9-.]+$";
  79 + // return ![bucket isMatchedByRegex:strReg5];
  80 +}
  81 +@end
  82 +
  83 +@implementation NSData (WithBase64)
  84 +
  85 +- (NSString *)base64EncodedString {
  86 + NSMutableString *result;
  87 + unsigned char *raw;
  88 + unsigned long length;
  89 + short i, nCharsToWrite;
  90 + long cursor;
  91 + unsigned char inbytes[3], outbytes[4];
  92 +
  93 + length = [self length];
  94 +
  95 + if (length < 1) {
  96 + return @"";
  97 + }
  98 +
  99 + result = [NSMutableString stringWithCapacity:length];
  100 + raw = (unsigned char *)[self bytes];
  101 + // Take 3 chars at a time, and encode to 4
  102 + for (cursor = 0; cursor < length; cursor += 3) {
  103 + for (i = 0; i < 3; i++) {
  104 + if (cursor + i < length) {
  105 + inbytes[i] = raw[cursor + i];
  106 + } else {
  107 + inbytes[i] = 0;
  108 + }
  109 + }
  110 +
  111 + outbytes[0] = (inbytes[0] & 0xFC) >> 2;
  112 + outbytes[1] = ((inbytes[0] & 0x03) << 4) | ((inbytes[1] & 0xF0) >> 4);
  113 + outbytes[2] = ((inbytes[1] & 0x0F) << 2) | ((inbytes[2] & 0xC0) >> 6);
  114 + outbytes[3] = inbytes[2] & 0x3F;
  115 +
  116 + nCharsToWrite = 4;
  117 +
  118 + switch (length - cursor) {
  119 + case 1:
  120 + nCharsToWrite = 2;
  121 + break;
  122 +
  123 + case 2:
  124 + nCharsToWrite = 3;
  125 + break;
  126 + }
  127 + for (i = 0; i < nCharsToWrite; i++) {
  128 + [result appendFormat:@"%c", base64EncodingTable[outbytes[i]]];
  129 + }
  130 + for (i = nCharsToWrite; i < 4; i++) {
  131 + [result appendString:@"="];
  132 + }
  133 + }
  134 +
  135 + return [NSString stringWithString:result]; // convert to immutable string
  136 +}
  137 +
  138 ++ (NSData *)dataWithBase64EncodedString:(NSString *)encodedString {
  139 + if (nil == encodedString || [encodedString length] < 1) {
  140 + return [NSData data];
  141 + }
  142 +
  143 + const char *inputPtr;
  144 + unsigned char *buffer;
  145 +
  146 + NSInteger length;
  147 +
  148 + inputPtr = [encodedString cStringUsingEncoding:NSASCIIStringEncoding];
  149 + length = strlen(inputPtr);
  150 + char ch;
  151 + NSInteger inputIdx = 0, outputIdx = 0, padIdx;
  152 +
  153 + buffer = calloc(length, sizeof(unsigned char));
  154 +
  155 + while (((ch = *inputPtr++) != '\0') && (length-- > 0)) {
  156 + if (ch == '=') {
  157 + if (*inputPtr != '=' && ((inputIdx % 4) == 1)) {
  158 + free(buffer);
  159 + return nil;
  160 + }
  161 + continue;
  162 + }
  163 +
  164 + ch = base64DecodingTable[ch];
  165 +
  166 + if (ch < 0) { // whitespace or other invalid character
  167 + continue;
  168 + }
  169 +
  170 + switch (inputIdx % 4) {
  171 + case 0:
  172 + buffer[outputIdx] = ch << 2;
  173 + break;
  174 +
  175 + case 1:
  176 + buffer[outputIdx++] |= ch >> 4;
  177 + buffer[outputIdx] = (ch & 0x0f) << 4;
  178 + break;
  179 +
  180 + case 2:
  181 + buffer[outputIdx++] |= ch >> 2;
  182 + buffer[outputIdx] = (ch & 0x03) << 6;
  183 + break;
  184 +
  185 + case 3:
  186 + buffer[outputIdx++] |= ch;
  187 + break;
  188 + }
  189 +
  190 + inputIdx++;
  191 + }
  192 +
  193 + padIdx = outputIdx;
  194 +
  195 + if (ch == '=') {
  196 + switch (inputIdx % 4) {
  197 + case 1:
  198 + free(buffer);
  199 + return nil;
  200 +
  201 + case 2:
  202 + padIdx++;
  203 +
  204 + case 3:
  205 + buffer[padIdx] = 0;
  206 + }
  207 + }
  208 +
  209 + NSData *objData = [[NSData alloc] initWithBytes:buffer length:outputIdx];
  210 + free(buffer);
  211 + return objData;
  212 +}
  213 +
  214 +@end
  215 +@implementation NSString (Md5)
  216 +
  217 +- (NSString *)MD5Hash {
  218 + const char *cStr = [self UTF8String];
  219 + unsigned char result[16];
  220 + CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
  221 + return [NSString
  222 + stringWithFormat:
  223 + @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
  224 + result[0], result[1], result[2], result[3], result[4], result[5],
  225 + result[6], result[7], result[8], result[9], result[10], result[11],
  226 + result[12], result[13], result[14], result[15]];
  227 +}
  228 +
  229 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.h 0 → 100644
  1 +//
  2 +// KingSoftServiceRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Credentials.h"
  10 +#import "KS3URLRequest.h"
  11 +#import <Foundation/Foundation.h>
  12 +@class KS3ServiceResponse;
  13 +@class KS3ClientException;
  14 +@protocol KingSoftServiceRequestDelegate;
  15 +@interface KS3ServiceRequest : NSObject
  16 +@property(strong, nonatomic) KS3Credentials *credentials;
  17 +@property(strong, nonatomic) KS3URLRequest *urlRequest;
  18 +@property(strong, nonatomic) NSString *httpMethod;
  19 +@property(strong, nonatomic) NSURLConnection *urlConnection;
  20 +@property(strong, readonly, nonatomic) NSURL *url;
  21 +@property(strong, nonatomic) NSString *host;
  22 +@property(strong, nonatomic) NSString *contentMd5;
  23 +@property(strong, nonatomic) NSString *contentType;
  24 +@property(strong, nonatomic) NSString *kSYResource;
  25 +@property(strong, nonatomic) NSDate *requestDate;
  26 +@property(strong, nonatomic) NSString *strDate;
  27 +@property(nonatomic, strong) NSString *strKS3Token;
  28 +@property NSTimeInterval timeoutInterval;
  29 +@property(weak, nonatomic) id<KingSoftServiceRequestDelegate> delegate;
  30 +
  31 +- (KS3URLRequest *)configureURLRequest;
  32 +- (void)sign;
  33 +- (KS3ClientException *)validate;
  34 +- (void)cancel;
  35 +- (NSString *)URLEncodedString:(NSString *)str;
  36 +- (void)setCompleteRequest;
  37 +
  38 +- (NSString *)kSYHeader;
  39 +@end
  40 +
  41 +@protocol KingSoftServiceRequestDelegate <NSObject>
  42 +
  43 +@optional
  44 +
  45 +- (void)request:(KS3ServiceRequest *)request
  46 + didReceiveResponse:(NSURLResponse *)response;
  47 +
  48 +- (void)request:(KS3ServiceRequest *)request didReceiveData:(NSData *)data;
  49 +
  50 +- (void)request:(KS3ServiceRequest *)request
  51 + didCompleteWithResponse:(KS3ServiceResponse *)response;
  52 +
  53 +- (void)request:(KS3ServiceRequest *)request
  54 + didSendData:(long long)bytesWritten
  55 + totalBytesWritten:(long long)totalBytesWritten
  56 + totalBytesExpectedToWrite:(long long)totalBytesExpectedToWrite;
  57 +
  58 +- (void)request:(KS3ServiceRequest *)request didFailWithError:(NSError *)error;
  59 +
  60 +- (void)request:(KS3ServiceRequest *)request
  61 + didFailWithServiceException:(NSException *)exception
  62 + __attribute__((deprecated));
  63 +
  64 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.m 0 → 100644
  1 +//
  2 +// KingSoftServiceRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ServiceRequest.h"
  10 +#import "KS3AuthUtils.h"
  11 +#import "KS3ClientException.h"
  12 +
  13 +@implementation KS3ServiceRequest
  14 +
  15 +- (instancetype)init {
  16 + self = [super init];
  17 + if (self) {
  18 + _contentMd5 = @"";
  19 + _contentType = @"";
  20 + _kSYResource = @"";
  21 + _host = @"";
  22 + _requestDate = [NSDate date];
  23 + _strDate = [KS3AuthUtils strDateWithDate:_requestDate andType:@"GMT"];
  24 +
  25 + _strKS3Token = nil;
  26 + _urlRequest = [KS3URLRequest new];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +- (void)setCompleteRequest {
  32 +}
  33 +- (void)sign {
  34 + [KS3AuthUtils signRequestV4:self
  35 + urlRequest:_urlRequest
  36 + headers:nil
  37 + payload:nil
  38 + credentials:_credentials];
  39 +}
  40 +
  41 +- (KS3URLRequest *)configureURLRequest {
  42 + [self sign];
  43 + return _urlRequest;
  44 +}
  45 +
  46 +- (KS3ClientException *)validate {
  47 + return nil;
  48 +}
  49 +- (void)cancel {
  50 + [self.urlConnection cancel];
  51 +}
  52 +
  53 +- (NSString *)URLEncodedString:(NSString *)str {
  54 + NSMutableString *output = [NSMutableString string];
  55 + const unsigned char *source = (const unsigned char *)[str UTF8String];
  56 +
  57 + int sourceLen = (int)strlen((const char *)source);
  58 +
  59 + for (int i = 0; i < sourceLen; ++i) {
  60 +
  61 + const unsigned char thisChar = source[i];
  62 +
  63 + if (thisChar == ' ') {
  64 +
  65 + [output appendString:@"+"];
  66 +
  67 + } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' ||
  68 + thisChar == '~' ||
  69 +
  70 + (thisChar >= 'a' && thisChar <= 'z') ||
  71 +
  72 + (thisChar >= 'A' && thisChar <= 'Z') ||
  73 +
  74 + (thisChar >= '0' && thisChar <= '9')) {
  75 +
  76 + [output appendFormat:@"%c", thisChar];
  77 +
  78 + } else {
  79 +
  80 + [output appendFormat:@"%%%02X", thisChar];
  81 + }
  82 + }
  83 + output = [[output stringByReplacingOccurrencesOfString:@"%2F" withString:@"/"]
  84 + mutableCopy];
  85 + output = [[output stringByReplacingOccurrencesOfString:@"+" withString:@"%20"]
  86 + mutableCopy];
  87 + output = [[output stringByReplacingOccurrencesOfString:@"*" withString:@"%2A"]
  88 + mutableCopy];
  89 + output = [[output stringByReplacingOccurrencesOfString:@"%7E" withString:@"~"]
  90 + mutableCopy];
  91 +
  92 + return output;
  93 +}
  94 +
  95 +- (NSString *)kSYHeader {
  96 + NSDictionary *httpHeaders = self.urlRequest.allHTTPHeaderFields;
  97 + NSMutableArray *headerArray = [[NSMutableArray alloc] init];
  98 + for (NSString *headerStr in httpHeaders) {
  99 + if ([headerStr hasPrefix:@"x-kss-"]) {
  100 + [headerArray addObject:[NSString stringWithFormat:@"%@:%@", headerStr, httpHeaders[headerStr]]];
  101 + }
  102 + }
  103 +
  104 + headerArray = [headerArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
  105 + return [obj1 compare:obj2];
  106 + }];
  107 +
  108 + return [headerArray componentsJoinedByString:@"\n"];
  109 +}
  110 +
  111 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.h 0 → 100644
  1 +//
  2 +// KingSoftServiceResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3ServiceRequest;
  11 +@interface KS3ServiceResponse : NSObject {
  12 + NSMutableData *body;
  13 +}
  14 +@property(nonatomic, readonly) NSData *body;
  15 +@property(nonatomic, readonly) BOOL isFinishedLoading;
  16 +@property(nonatomic, readonly) BOOL didTimeout;
  17 +@property(nonatomic, strong) NSDictionary *responseHeader;
  18 +@property(nonatomic) int32_t httpStatusCode;
  19 +
  20 +@property(readonly, copy) NSURL *URL;
  21 +
  22 +@property(readonly, copy) NSString *MIMEType;
  23 +
  24 +@property(readonly) long long expectedContentLength;
  25 +
  26 +@property(readonly, copy) NSString *textEncodingName;
  27 +
  28 +@property(readonly, copy) NSString *suggestedFilename;
  29 +
  30 +@property(strong, nonatomic) NSError *error;
  31 +
  32 +@property(nonatomic, strong) KS3ServiceRequest *request;
  33 +- (void)timeout;
  34 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.m 0 → 100644
  1 +//
  2 +// KingSoftServiceResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ServiceResponse.h"
  10 +#import "KS3ListPartsResponse.h"
  11 +#import "KS3Part.h"
  12 +#import "KS3ServiceRequest.h"
  13 +#import "KS3UploadPartRequest.h"
  14 +@implementation KS3ServiceResponse
  15 +
  16 +- (NSData *)body {
  17 + return [NSData dataWithData:body];
  18 +}
  19 +
  20 +- (void)connection:(NSURLConnection *)connection
  21 +didReceiveResponse:(NSURLResponse *)response {
  22 + NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
  23 + // setting response header to use it in shouldRetry method of
  24 + // AmazonAbstractWebServiceClient
  25 + _responseHeader = [httpResponse allHeaderFields];
  26 + NSLog(@"Response Headers:");
  27 + for (NSString *header in [[httpResponse allHeaderFields] allKeys]) {
  28 + NSLog(@"%@ = [%@]", header,
  29 + [[httpResponse allHeaderFields] valueForKey:header]);
  30 + }
  31 + self.httpStatusCode = (int32_t)[httpResponse statusCode];
  32 + NSLog(@"httpStatus: %d", self.httpStatusCode);
  33 + [body setLength:0];
  34 + if ([self.request.delegate
  35 + respondsToSelector:@selector(request:didReceiveResponse:)]) {
  36 + [self.request.delegate request:self.request didReceiveResponse:response];
  37 + }
  38 +}
  39 +
  40 +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
  41 + if (nil == body) {
  42 + body = [NSMutableData data];
  43 + }
  44 + [body appendData:data];
  45 + if ([self.request.delegate
  46 + respondsToSelector:@selector(request:didReceiveData:)]) {
  47 + [self.request.delegate request:self.request didReceiveData:data];
  48 + }
  49 +}
  50 +
  51 +- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  52 + _isFinishedLoading = YES;
  53 + NSString *tmpStr =
  54 + [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding];
  55 + NSLog(@"Response Body:\n%@", tmpStr);
  56 + [self processBody];
  57 + if ([self.request isKindOfClass:[KS3ListPartsResponse class]]) {
  58 + KS3ListPartsResponse *listParts = (KS3ListPartsResponse *)self.request;
  59 + NSLog(@"%@", listParts.listResult.parts);
  60 + for (KS3Part *part in listParts.listResult.parts) {
  61 + NSLog(@"part = %@", part);
  62 + }
  63 + }
  64 + if (_request.delegate &&
  65 + [_request.delegate
  66 + respondsToSelector:@selector(request:didCompleteWithResponse:)]) {
  67 + [_request.delegate request:self.request didCompleteWithResponse:self];
  68 + }
  69 +}
  70 +
  71 +- (void)connection:(NSURLConnection *)connection
  72 + didFailWithError:(NSError *)theError {
  73 + _isFinishedLoading = YES;
  74 + NSDictionary *info = [theError userInfo];
  75 + NSLog(@"%@", info);
  76 + self.error = theError;
  77 + // for (id key in info)
  78 + // {
  79 + // NSLog(@"UserInfo.%@ = %@\n", [key description], [[info
  80 + // valueForKey:key] description]);
  81 + // }
  82 + if ([self.request.delegate
  83 + respondsToSelector:@selector(request:didFailWithError:)]) {
  84 + [self.request.delegate request:self.request didFailWithError:theError];
  85 + }
  86 +}
  87 +
  88 +- (void)connection:(NSURLConnection *)connection
  89 + didSendBodyData:(NSInteger)bytesWritten
  90 + totalBytesWritten:(NSInteger)totalBytesWritten
  91 + totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite {
  92 +
  93 + //上传暂停
  94 + if ([self.request isKindOfClass:[KS3UploadPartRequest class]]) {
  95 + KS3UploadPartRequest *req = (KS3UploadPartRequest *)self.request;
  96 + if (req.multipartUpload.isPaused) {
  97 + [self.request cancel];
  98 + }
  99 + }
  100 +
  101 + if ([self.request.delegate
  102 + respondsToSelector:@selector(request:
  103 + didSendData:
  104 + totalBytesWritten:
  105 + totalBytesExpectedToWrite:)]) {
  106 + [self.request.delegate request:self.request
  107 + didSendData:(long long)bytesWritten
  108 + totalBytesWritten:(long long)totalBytesWritten
  109 + totalBytesExpectedToWrite:(long long)totalBytesExpectedToWrite];
  110 + }
  111 +}
  112 +
  113 +// When a request gets a redirect due to the bucket being in a different region,
  114 +// The request gets re-written with a GET http method. This is to set the method
  115 +// back to
  116 +// the appropriate method if necessary
  117 +- (NSURLRequest *)connection:(NSURLConnection *)connection
  118 + willSendRequest:(NSURLRequest *)proposedRequest
  119 + redirectResponse:(NSURLResponse *)redirectResponse {
  120 + return proposedRequest;
  121 +}
  122 +
  123 +- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
  124 + willCacheResponse:(NSCachedURLResponse *)cachedResponse {
  125 + return nil;
  126 +}
  127 +
  128 +- (void)processBody {
  129 +}
  130 +- (void)timeout {
  131 +}
  132 +
  133 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.h 0 → 100644
  1 +//
  2 +// KingSoftURLRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Credentials.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3URLRequest : NSMutableURLRequest
  13 +@property(weak, nonatomic) KS3Credentials *credentials;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.m 0 → 100644
  1 +//
  2 +// KingSoftURLRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3URLRequest.h"
  10 +
  11 +@implementation KS3URLRequest
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.h 0 → 100644
  1 +//
  2 +// KingSoftWebServiceClient.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbstractWebServiceClient.h"
  10 +
  11 +@interface KS3WebServiceClient : KS3AbstractWebServiceClient
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.m 0 → 100644
  1 +//
  2 +// KingSoftWebServiceClient.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3WebServiceClient.h"
  10 +
  11 +@implementation KS3WebServiceClient
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.h 0 → 100644
  1 +//
  2 +// KS3UploadManager.h
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/4/27.
  6 +//
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@class KS3Client;
  12 +@class KS3Request;
  13 +@class KS3Response;
  14 +@class KS3UploadRequest;
  15 +@class KS3Upload;
  16 +
  17 +#define kKB 1024
  18 +#define kMB 1048576
  19 +
  20 +typedef void (^KS3UploadErrorHandler)(KS3Upload *upload, NSError *error);
  21 +typedef void (^KS3UploadCompletionHandler)(KS3Upload *upload, KS3Response *response);
  22 +typedef void (^KS3UploadProgressHandler)(NSString *key, double percent);
  23 +typedef BOOL (^KS3UploadCancellationSignal)(NSString *key);
  24 +typedef NSString* (^KS3AuthCalculateHandler)(KS3Request *request);
  25 +
  26 +@interface KS3UploadManager : NSObject
  27 +
  28 +- (instancetype)initWithClient:(KS3Client *)client authHandler:(KS3AuthCalculateHandler)authHandler;
  29 +
  30 ++ (instancetype)sharedInstanceWithClient:(KS3Client *)client authHandler:(KS3AuthCalculateHandler)authHandler;
  31 +
  32 +- (void)putData:(NSData *)data
  33 + request:(KS3UploadRequest *)request
  34 + blockSize:(NSInteger)size
  35 + progress:(KS3UploadProgressHandler)progressHandler
  36 + cancelSignal:(KS3UploadCancellationSignal)cancelSignal
  37 + complete:(KS3UploadCompletionHandler)completionHandler
  38 + error:(KS3UploadErrorHandler)errorHandler;
  39 +
  40 +- (void)resumeUpload:(NSData *)data
  41 + upload:(KS3Upload *)upload
  42 + progress:(KS3UploadProgressHandler)progressHandler
  43 + cancelSignal:(KS3UploadCancellationSignal)cancelSignal
  44 + complete:(KS3UploadCompletionHandler)completionHandler
  45 + error:(KS3UploadErrorHandler)errorHandler;
  46 +
  47 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.m 0 → 100644
  1 +//
  2 +// KS3UploadManager.m
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/4/27.
  6 +//
  7 +//
  8 +
  9 +#import "KS3UploadManager.h"
  10 +#import "KS3Request.h"
  11 +#import "KS3Response.h"
  12 +#import "KS3Client.h"
  13 +#import "KS3UploadRequest.h"
  14 +#import "KS3Upload.h"
  15 +#import "KS3ListPartsRequest.h"
  16 +#import "KS3ServiceRequest.h"
  17 +#import "KS3InitiateMultipartUploadResponse.h"
  18 +#import "KS3UploadPartRequest.h"
  19 +#import "KS3SDKUtil.h"
  20 +#import "KS3AuthUtils.h"
  21 +#import "KS3CompleteMultipartUploadRequest.h"
  22 +#import "KS3CompleteMultipartUploadResponse.h"
  23 +#import "KS3ListPartsResponse.h"
  24 +#import "KS3Part.h"
  25 +
  26 +#define kMinBlockSize 5 * kMB
  27 +#define kMaxBlockSize 512 * kMB
  28 +
  29 +@interface KS3UploadManager()
  30 +
  31 +@property (nonatomic, strong) KS3Client *client;
  32 +@property (nonatomic, strong) KS3AuthCalculateHandler authHandler;
  33 +
  34 +@property (nonatomic, strong) NSMutableDictionary *uploadRecorder;
  35 +@property (nonatomic, strong) NSMutableDictionary *dataRecorder;
  36 +@property (nonatomic, strong) NSMutableDictionary *progressRecorder;
  37 +@property (nonatomic, strong) NSMutableDictionary *progressHandlers;
  38 +@property (nonatomic, strong) NSMutableDictionary *cancelSignalHandlers;
  39 +@property (nonatomic, strong) NSMutableDictionary *completeHandlers;
  40 +@property (nonatomic, strong) NSMutableDictionary *errorHandlers;
  41 +
  42 +@end
  43 +
  44 +@interface KS3UploadManager () <KingSoftServiceRequestDelegate>
  45 +@end
  46 +
  47 +@implementation KS3UploadManager
  48 +
  49 +- (instancetype)initWithClient:(KS3Client *)client authHandler:(KS3AuthCalculateHandler)authHandler {
  50 + if (self = [super init]) {
  51 + self.client = client;
  52 + self.authHandler = authHandler;
  53 +
  54 + self.uploadRecorder = [[NSMutableDictionary alloc] init];
  55 + self.dataRecorder = [[NSMutableDictionary alloc] init];
  56 + self.progressRecorder = [[NSMutableDictionary alloc] init];
  57 + self.progressHandlers = [[NSMutableDictionary alloc] init];
  58 + self.cancelSignalHandlers = [[NSMutableDictionary alloc] init];
  59 + self.completeHandlers = [[NSMutableDictionary alloc] init];
  60 + self.errorHandlers = [[NSMutableDictionary alloc] init];
  61 + }
  62 +
  63 + return self;
  64 +}
  65 +
  66 ++(instancetype)sharedInstanceWithClient:(KS3Client *)client authHandler:(KS3AuthCalculateHandler)authHandler {
  67 + static KS3UploadManager *sharedManager = nil;
  68 +
  69 + static dispatch_once_t onceToken;
  70 + dispatch_once(&onceToken, ^{
  71 + sharedManager = [[self alloc] initWithClient:client authHandler:authHandler];
  72 + });
  73 +
  74 + return sharedManager;
  75 +}
  76 +
  77 +- (void)putData:(NSData *)data
  78 + request:(KS3UploadRequest *)request
  79 + blockSize:(NSInteger)size
  80 + progress:(KS3UploadProgressHandler)progressHandler
  81 + cancelSignal:(KS3UploadCancellationSignal)cancelSignal
  82 + complete:(KS3UploadCompletionHandler)completionHandler
  83 + error:(KS3UploadErrorHandler)errorHandler {
  84 + NSInteger contentLength = data.length;
  85 +
  86 + NSInteger blockLength = size;
  87 +
  88 + if (size < kMinBlockSize) {
  89 + size = kMinBlockSize;
  90 + }
  91 + if (size > kMaxBlockSize) {
  92 + size = kMaxBlockSize;
  93 + }
  94 +
  95 + NSInteger partCount = (ceilf((float)contentLength / (float)size));
  96 +
  97 + // Step 1 initiate Multipart Upload
  98 + KS3InitiateMultipartUploadResponse *initiateMultipartUploadResponse = [self.client initiateMultipartUploadWithRequestAndResponse:request];
  99 + KS3MultipartUpload *multipartUpload = initiateMultipartUploadResponse.multipartUpload;
  100 + if (!multipartUpload) {
  101 + errorHandler(nil, initiateMultipartUploadResponse.error);
  102 + NSLog(@"Initiate multipart upload failed..");
  103 + return;
  104 + }
  105 +
  106 + KS3Upload *upload = [[KS3Upload alloc] init];
  107 + upload.key = multipartUpload.key;
  108 + upload.bucket = multipartUpload.bucket;
  109 + upload.uploadId = multipartUpload.uploadId;
  110 + upload.storageClass = multipartUpload.storageClass;
  111 + upload.initiator = multipartUpload.initiator;
  112 + upload.initiated = multipartUpload.initiated;
  113 + upload.blockSize = size;
  114 + upload.partCount = partCount;
  115 + upload.contentLength = contentLength;
  116 +
  117 + [self registerUpload:upload data:data progressHandler:progressHandler cancelSignal:cancelSignal completeHandler:completionHandler errorHandler:errorHandler];
  118 +
  119 + // Step 2 kick first part upload
  120 + // later parts will be uploaded in delegate methods
  121 + [self upload:upload.uploadId part:1];
  122 +}
  123 +
  124 +- (void)resumeUpload:(NSData *)data
  125 + upload:(KS3Upload *)upload
  126 + progress:(KS3UploadProgressHandler)progressHandler
  127 + cancelSignal:(KS3UploadCancellationSignal)cancelSignal
  128 + complete:(KS3UploadCompletionHandler)completionHandler
  129 + error:(KS3UploadErrorHandler)errorHandler {
  130 + [self registerUpload:upload data:data progressHandler:progressHandler cancelSignal:cancelSignal completeHandler:completionHandler errorHandler:errorHandler];
  131 + NSString *uploadId = upload.uploadId;
  132 + NSString *objectKey = upload.key;
  133 +
  134 + //list一下所有上传过的块
  135 + KS3ListPartsRequest *req2 = [[KS3ListPartsRequest alloc] initWithMultipartUpload:upload];
  136 + [req2 setCompleteRequest];
  137 +
  138 + //使用token签名时从Appserver获取token后设置token,使用Ak sk则忽略,不需要调用
  139 + if (self.authHandler) {
  140 + [req2 setStrKS3Token:self.authHandler(req2)];
  141 + } else {
  142 + [req2 setStrKS3Token:[self authorizationForRequest:req2]];
  143 + }
  144 +
  145 +
  146 + KS3ListPartsResponse *response2 = [[KS3Client initialize] listParts:req2];
  147 +
  148 + NSLog(@"response.listResult.parts.count =%lu",(unsigned long)[response2.listResult.parts count]);
  149 +
  150 + //从这块开始上传,list结果的最后一块
  151 + NSNumber *uploadedPart = [NSNumber numberWithInteger:((KS3Part *)[response2.listResult.parts lastObject]).partNumber];
  152 + [self.progressRecorder setObject:uploadedPart forKey:uploadId];
  153 +
  154 + //进度补齐
  155 + long long alreadyTotalWriten = uploadedPart.integerValue * upload.blockSize ;
  156 + double progress = 1.0 * alreadyTotalWriten / upload.contentLength;
  157 + progressHandler(objectKey, progress);
  158 +
  159 + [self upload:uploadId part:uploadedPart.integerValue + 1];
  160 +}
  161 +
  162 +#pragma mark - Register methods
  163 +- (void)registerUpload:(KS3Upload *)upload data:(NSData *)data
  164 + progressHandler:(KS3UploadProgressHandler)progressHandler
  165 + cancelSignal:(KS3UploadCancellationSignal)cancelSignal
  166 + completeHandler:(KS3UploadCompletionHandler)completionHandler
  167 + errorHandler:(KS3UploadErrorHandler)errorHandler {
  168 + NSString *uploadId = upload.uploadId;
  169 + [self.uploadRecorder setObject:upload forKey:uploadId];
  170 + [self.dataRecorder setObject:data forKey:uploadId];
  171 + [self.progressRecorder setObject:[NSNumber numberWithInteger:0] forKey:uploadId];
  172 + [self.progressHandlers setObject:progressHandler forKey:uploadId];
  173 + [self.cancelSignalHandlers setObject:cancelSignal forKey:uploadId];
  174 + [self.completeHandlers setObject:completionHandler forKey:uploadId];
  175 + [self.errorHandlers setObject:errorHandler forKey:uploadId];
  176 +}
  177 +
  178 +- (void)removeUpload:(KS3Upload *)upload {
  179 + NSString *uploadId = upload.uploadId;
  180 + [self.uploadRecorder removeObjectForKey:uploadId];
  181 + [self.dataRecorder removeObjectForKey:uploadId];
  182 + [self.progressRecorder removeObjectForKey:uploadId];
  183 + [self.progressHandlers removeObjectForKey:uploadId];
  184 + [self.cancelSignalHandlers removeObjectForKey:uploadId];
  185 + [self.completeHandlers removeObjectForKey:uploadId];
  186 + [self.errorHandlers removeObjectForKey:uploadId];
  187 +}
  188 +
  189 +#pragma mark - Data Helper
  190 +- (NSData *)dataWithRange:(NSData *)data range:(NSRange)range {
  191 + NSRange totalRange = NSMakeRange(0, data.length);
  192 + NSRange intersectRange = NSIntersectionRange(range, totalRange);
  193 + return [data subdataWithRange:intersectRange];
  194 +}
  195 +
  196 +#pragma mark - Upload methods
  197 +- (void)upload:(NSString *)uploadId part:(NSInteger) part
  198 +{
  199 + @autoreleasepool {
  200 + KS3Upload *multipartUpload = [self.uploadRecorder objectForKey:uploadId];
  201 +
  202 + NSRange dataRange = NSMakeRange((part - 1) * multipartUpload.blockSize, multipartUpload.blockSize);
  203 + NSData *content = [self.dataRecorder objectForKey:uploadId];
  204 + NSData *partData = [self dataWithRange:content range:dataRange];
  205 +
  206 + KS3UploadPartRequest *req = [[KS3UploadPartRequest alloc] initWithMultipartUpload:multipartUpload partNumber:(int32_t)part data:partData generateMD5:NO];
  207 + req.delegate = self;
  208 + req.contentLength = partData.length;
  209 + req.contentMd5 = [KS3SDKUtil base64md5FromData:partData];
  210 + [req setCompleteRequest];
  211 +
  212 + if (self.authHandler) {
  213 + [req setStrKS3Token:self.authHandler(req)];
  214 + } else {
  215 + [req setStrKS3Token:[self authorizationForRequest:req]];
  216 + }
  217 +
  218 + [[KS3Client initialize] uploadPart:req];
  219 + }
  220 +}
  221 +
  222 +#pragma mark - Auth Utils
  223 +- (NSString *)authorizationForRequest:(KS3Request *)request {
  224 + return [KS3AuthUtils KSYAuthorizationWithAccessKey:self.client.credentials.accessKey
  225 + secretKey:self.client.credentials.secretKey
  226 + httpVerb:request.httpMethod
  227 + contentMd5:request.contentMd5
  228 + contentType:request.contentType
  229 + strDate:request.strDate
  230 + canonicalizedKssHeader:request.kSYHeader
  231 + canonicalizedResource:request.kSYResource];
  232 +}
  233 +
  234 +#pragma mark - 上传的回调方法
  235 +- (void)request:(KS3Request *)request didCompleteWithResponse:(KS3Response *)response
  236 +{
  237 + if ([request isKindOfClass:[KS3UploadPartRequest class]]) {
  238 + KS3UploadPartRequest *uploadPartRequest = (KS3UploadPartRequest *)request;
  239 + NSString *uploadId = uploadPartRequest.uploadId;
  240 +
  241 + if (response.httpStatusCode != 200) {
  242 + KS3UploadErrorHandler errorHandler = [self.errorHandlers objectForKey:uploadId];
  243 + if (errorHandler) {
  244 + errorHandler([self.uploadRecorder objectForKey:uploadId], [NSError errorWithDomain:NSURLErrorDomain code:response.httpStatusCode userInfo:@{@"mesage" : [[NSString alloc] initWithData:response.body encoding:NSUTF8StringEncoding]}] );
  245 + }
  246 + return;
  247 + }
  248 +
  249 + NSNumber *progress = [self.progressRecorder objectForKey:uploadId];
  250 + KS3Upload *upload = [self.uploadRecorder objectForKey:uploadId];
  251 + progress = [NSNumber numberWithInteger:progress.integerValue + 1];
  252 + [self.progressRecorder setObject:progress forKey:uploadId];
  253 +
  254 + // 所有块上传完成
  255 + if (progress.integerValue >= upload.partCount) {
  256 + KS3ListPartsRequest *req2 = [[KS3ListPartsRequest alloc] initWithMultipartUpload:upload];
  257 + [req2 setCompleteRequest];
  258 +
  259 + if (self.authHandler) {
  260 + [req2 setStrKS3Token:self.authHandler(req2)];
  261 + } else {
  262 + [req2 setStrKS3Token:[self authorizationForRequest:req2]];
  263 + }
  264 +
  265 + KS3ListPartsResponse *response2 = [[KS3Client initialize] listParts:req2];
  266 + KS3CompleteMultipartUploadRequest *req = [[KS3CompleteMultipartUploadRequest alloc] initWithMultipartUpload:upload];
  267 +
  268 + NSLog(@"%@",response2.listResult.parts);
  269 + for (KS3Part *part in response2.listResult.parts) {
  270 + [req addPartWithPartNumber:part.partNumber withETag:part.etag];
  271 + }
  272 + //req参数设置完一定要调这个函数
  273 + [req setCompleteRequest];
  274 +
  275 + if (self.authHandler) {
  276 + [req setStrKS3Token:self.authHandler(req)];
  277 + } else {
  278 + [req setStrKS3Token:[self authorizationForRequest:req]];
  279 + }
  280 +
  281 + KS3CompleteMultipartUploadResponse *resp = [[KS3Client initialize] completeMultipartUpload:req];
  282 + NSString *bodyStr = [[NSString alloc]initWithData:resp.body encoding:NSUTF8StringEncoding];
  283 + if (resp.httpStatusCode != 200) {
  284 + NSLog(@"#####complete multipart upload failed!!! code: %d#####,body = %@", resp.httpStatusCode,bodyStr);
  285 +
  286 + KS3UploadErrorHandler errorHandler = [self.errorHandlers objectForKey:uploadId];
  287 + errorHandler(upload, [NSError errorWithDomain:NSURLErrorDomain code:response.httpStatusCode userInfo:@{@"mesage" : [[NSString alloc] initWithData:response.body encoding:NSUTF8StringEncoding]}]);
  288 + }else if (resp.httpStatusCode == 200) {
  289 + NSLog(@"分块上传成功!!");
  290 +
  291 + KS3UploadCompletionHandler handler = [self.completeHandlers objectForKey:uploadId];
  292 + handler([self.uploadRecorder objectForKey:uploadId], resp);
  293 + }
  294 +
  295 + [self removeUpload:upload];
  296 + }
  297 + else {
  298 + [self upload:uploadId part:progress.integerValue + 1];
  299 + }
  300 + }
  301 +
  302 +}
  303 +
  304 +- (void)request:(KS3Request *)request didFailWithError:(NSError *)error
  305 +{
  306 + NSLog(@"upload error: %@", error);
  307 + if ([request respondsToSelector:@selector(uploadId)]) {
  308 + NSString *uploadId = [request performSelector:@selector(uploadId)];
  309 + KS3UploadErrorHandler handler = [self.errorHandlers objectForKey:uploadId];
  310 + KS3Upload *upload = [self.uploadRecorder objectForKey:uploadId];
  311 + if (handler) {
  312 + handler(upload, error);
  313 + }
  314 + }
  315 +}
  316 +
  317 +- (void)request:(KS3Request *)request didReceiveResponse:(NSURLResponse *)response
  318 +{
  319 +}
  320 +
  321 +- (void)request:(KS3Request *)request didReceiveData:(NSData *)data
  322 +{
  323 +}
  324 +
  325 +-(void)request:(KS3Request *)request didSendData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten totalBytesExpectedToWrite:(long long)totalBytesExpectedToWrite
  326 +{
  327 + if ([request isKindOfClass:[KS3UploadPartRequest class]]) {
  328 + KS3UploadPartRequest *uploadPartRequest = (KS3UploadPartRequest *)request;
  329 + NSString *uploadId = uploadPartRequest.uploadId;
  330 + NSString *objectKey = uploadPartRequest.key;
  331 +
  332 + KS3UploadProgressHandler progressHandler = [self.progressHandlers objectForKey:uploadId];
  333 + KS3UploadCancellationSignal signal = [self.cancelSignalHandlers objectForKey:uploadId];
  334 + if (signal(objectKey)) {
  335 + [request cancel];
  336 +
  337 + progressHandler(uploadPartRequest.key, 0);
  338 + return;
  339 + }
  340 +
  341 + KS3Upload *upload = [self.uploadRecorder objectForKey:uploadId];
  342 + NSInteger uploadPart = [[self.progressRecorder objectForKey:uploadId] integerValue];
  343 + long long alreadyTotalWriten = uploadPart * upload.blockSize + totalBytesWritten;
  344 + double progress = 1.0 * alreadyTotalWriten / upload.contentLength;
  345 + if (progress > 1.0) {
  346 + NSLog(@"WTF???");
  347 + }
  348 + NSLog(@"upload progress: %f", progress);
  349 +
  350 + progressHandler(objectKey, progress);
  351 + }
  352 +}
  353 +
  354 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.h 0 → 100644
  1 +//
  2 +// KingSoftS3Client.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +// 有问题联系
  8 +// QQ:315720327
  9 +// email:me@iluckly.com
  10 +//
  11 +
  12 +#import "KS3WebServiceClient.h"
  13 +
  14 +@class KingSoftURLConnection;
  15 +@class KS3DownLoad;
  16 +@class ALAsset;
  17 +#pragma mark - Download block
  18 +
  19 +typedef void (^KSS3GetTokenSuccessBlock)(NSString *strToken);
  20 +typedef void (^KSS3DownloadBeginBlock)(KS3DownLoad *aDownload,
  21 + NSURLResponse *responseHeaders);
  22 +typedef void (^KSS3DownloadProgressChangeBlock)(KS3DownLoad *aDownload,
  23 + double newProgress);
  24 +typedef void (^KSS3DownloadFailedBlock)(KS3DownLoad *aDownload, NSError *error);
  25 +typedef void (^kSS3DownloadFileCompleteionBlock)(KS3DownLoad *aDownload,
  26 + NSString *filePath);
  27 +
  28 +@class KS3DeleteBucketResponse;
  29 +@class KS3SetACLResponse;
  30 +@class KS3ListBucketsRequest;
  31 +@class KS3ListBucketsResponse;
  32 +@class KS3CreateBucketResponse;
  33 +@class KS3GetACLResponse;
  34 +@class KS3GetBucketLoggingResponse;
  35 +@class KS3SetBucketLoggingResponse;
  36 +@class KS3GetObjectResponse;
  37 +@class KS3DeleteObjectResponse;
  38 +@class KS3HeadObjectResponse;
  39 +@class KS3PutObjectResponse;
  40 +@class KS3GetObjectACLResponse;
  41 +@class KS3SetObjectACLResponse;
  42 +@class KS3UploadPartResponse;
  43 +@class KS3UploadPartRequest;
  44 +@class KS3MultipartUpload;
  45 +@class KS3ListPartsResponse;
  46 +@class KS3ListPartsRequest;
  47 +@class KS3CompleteMultipartUploadResponse;
  48 +@class KS3CompleteMultipartUploadRequest;
  49 +@class KS3ListObjectsResponse;
  50 +@class KS3ListObjectsRequest;
  51 +@class KS3CreateBucketRequest;
  52 +@class KS3DeleteBucketResponse;
  53 +@class KS3DeleteBucketRequest;
  54 +@class KS3SetACLRequest;
  55 +@class KS3PutObjectRequest;
  56 +@class KS3GetObjectACLRequest;
  57 +@class KS3SetObjectACLRequest;
  58 +@class KS3DeleteObjectRequest;
  59 +@class KS3AbortMultipartUploadRequest;
  60 +@class KS3AbortMultipartUploadResponse;
  61 +@class KS3HeadBucketRequest;
  62 +@class KS3HeadBucketResponse;
  63 +@class KS3GetACLRequest;
  64 +@class KS3GetObjectRequest;
  65 +@class KS3HeadObjectRequest;
  66 +@class KS3SetGrantACLResponse;
  67 +@class KS3SetGrantACLRequest;
  68 +@class KS3SetObjectGrantACLResponse;
  69 +@class KS3SetObjectGrantACLRequest;
  70 +@class KS3SetBucketLoggingRequest;
  71 +@class KS3PutObjectCopyRequest;
  72 +@class KS3PutObjectCopyResponse;
  73 +@class KS3Response;
  74 +@class KS3Request;
  75 +@class KS3InitiateMultipartUploadRequest;
  76 +@class KS3InitiateMultipartUploadResponse;
  77 +@class KS3GetBucketLoggingRequest;
  78 +@class KS3Credentials;
  79 +
  80 +typedef enum {
  81 + KS3BucketBeijing = 0,
  82 + KS3BucketAmerica,
  83 + KS3BucketHongkong,
  84 + KS3BucketHangzhou,
  85 + KS3BucketShanghai,
  86 +} KS3BucketDomainRegion; // bucket所在地区
  87 +
  88 +@interface KS3Client : KS3WebServiceClient
  89 +
  90 +@property(assign, nonatomic) BOOL enableHTTPS;
  91 +@property(strong, nonatomic) KS3Credentials *credentials;
  92 +
  93 +/**
  94 + * 初始化
  95 + *
  96 + * @return Client对象
  97 + */
  98 ++ (KS3Client *)initialize;
  99 +
  100 +/**
  101 + * 返回请求协议:http/https
  102 + * 目前由enableHTTPS决定
  103 + */
  104 +- (NSString *)requestProtocol;
  105 +
  106 +/**
  107 + * 设置AccessKey和SecretKey
  108 + *
  109 + * @param accessKey
  110 + * @param secretKey
  111 + * 注释:这个接口必须实现(这个是使用下面API的(前提))建议在工程的delegate里面实现
  112 + */
  113 +- (void)connectWithAccessKey:(NSString *)accessKey
  114 + withSecretKey:(NSString *)secretKey;
  115 +/**
  116 + * 设置KS3Bucket所在的地区,默认北京
  117 +
  118 + * @param 共有北京,杭州,美国圣克拉拉,香港四个
  119 + * 注释:建议在工程的delegate里面实现
  120 + */
  121 +- (void)setBucketDomainWithRegion:(KS3BucketDomainRegion)domainRegion;
  122 +
  123 +/*
  124 + 设置KS3Bucket 所在的地区
  125 + @param 自定义的域名
  126 + */
  127 +- (void)setBucketDomain:(NSString *)domainRegion;
  128 +
  129 +/**
  130 + * 获取当前bucket所在地区,默认北京
  131 + 共有北京,杭州,美国圣克拉拉,香港四个
  132 + */
  133 +- (NSString *)getBucketDomain;
  134 +
  135 +/**
  136 + * 获取用户自定义的域名
  137 + * 如果没有设置,返回nil
  138 + */
  139 +- (NSString *)getCustomBucketDomain;
  140 +
  141 +/**
  142 + * 列出客户所有的Bucket信息
  143 + *
  144 + * @return 所有bucket的数组
  145 + */
  146 +- (NSArray *)listBuckets:(KS3ListBucketsRequest *)listBucketsRequest;
  147 +
  148 +/**
  149 + * 创建一个新的Bucket
  150 + *
  151 + * @param createBucketRequest 设置创建bucket的request信息
  152 + *
  153 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  154 + */
  155 +- (KS3CreateBucketResponse *)createBucket:
  156 + (KS3CreateBucketRequest *)createBucketRequest;
  157 +/**
  158 + * 删除指定Bucket
  159 + *
  160 + * @param deleteBucketRequest 设置删除bucket的request信息
  161 + *
  162 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  163 + */
  164 +- (KS3DeleteBucketResponse *)deleteBucket:
  165 + (KS3DeleteBucketRequest *)deleteBucketRequest;
  166 +/**
  167 + * 查询是否已经存在指定Bucket
  168 + *
  169 + * @param headBucketRequest 设置是否已经存在指定Bucket的request信息
  170 + *
  171 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  172 + */
  173 +- (KS3HeadBucketResponse *)headBucket:(KS3HeadBucketRequest *)headBucketRequest;
  174 +
  175 +/**
  176 + * 获得Bucket的acl
  177 + *
  178 + * @param getACLRequest 设置获取Bucket的acl的request对象
  179 + *
  180 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  181 + */
  182 +- (KS3GetACLResponse *)getBucketACL:(KS3GetACLRequest *)getACLRequest;
  183 +/**
  184 + * 设置Bucket的ACL
  185 + *
  186 + * @param getACLRequest 设置设置Bucket的ACL的request对象
  187 + *
  188 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  189 + */
  190 +- (KS3SetACLResponse *)setBucketACL:(KS3SetACLRequest *)getACLRequest;
  191 +/**
  192 + * 设置GrantACL信息
  193 + *
  194 + * @param setGrantACLRequest 设置grantACL的request信息
  195 + *
  196 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  197 + */
  198 +- (KS3SetGrantACLResponse *)setGrantACL:
  199 + (KS3SetGrantACLRequest *)setGrantACLRequest;
  200 +/**
  201 + * 列举Bucket内的Object
  202 + *
  203 + * @param bucketName
  204 + *
  205 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  206 + */
  207 +- (KS3ListObjectsResponse *)listObjects:
  208 + (KS3ListObjectsRequest *)listObjectsRequest;
  209 +
  210 +/**
  211 + * 获得Bucket的日志信息
  212 + *
  213 + * @param bucketName
  214 + *
  215 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  216 + */
  217 +- (KS3GetBucketLoggingResponse *)getBucketLogging:
  218 + (KS3GetBucketLoggingRequest *)getBucketLoggingRequest;
  219 +/**
  220 + * 下载Object数据
  221 + *
  222 + * @param getObjectRequest 设置下载Object的request请求信息
  223 + *
  224 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  225 + */
  226 +- (KS3GetObjectResponse *)getObject:(KS3GetObjectRequest *)getObjectRequest;
  227 +/**
  228 + * 删除指定Object
  229 + *
  230 + * @param deleteObjectRequest 设置删除Object的request请求信息
  231 + *
  232 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  233 + */
  234 +- (KS3DeleteObjectResponse *)deleteObject:
  235 + (KS3DeleteObjectRequest *)deleteObjectRequest;
  236 +
  237 +/**
  238 + * 查询是否已经存在指定Object
  239 + *
  240 + * @param headObjectRequest 设置是否已存在Object的request的信息
  241 + *
  242 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  243 + */
  244 +- (KS3HeadObjectResponse *)headObject:(KS3HeadObjectRequest *)headObjectRequest;
  245 +/**
  246 + * 上传Object数据 (如果文件比较大请设置委托)
  247 + *
  248 + * @param putObjectRequest 设置上传object的request的信息
  249 + *
  250 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  251 + */
  252 +- (KS3PutObjectResponse *)putObject:(KS3PutObjectRequest *)putObjectRequest;
  253 +/**
  254 + * 把源Bucket里面的某个Object复制到目的Bucket里面一个指定的Object
  255 + *
  256 + * @param putObjectCopyRequest 设置setObjectACLRequest的request信息
  257 + *
  258 + * @return 返回response对象(里边有服务返回的数据(具体的参照demo)
  259 + */
  260 +- (KS3PutObjectCopyResponse *)putObjectCopy:
  261 + (KS3PutObjectCopyRequest *)putObjectCopyRequest;
  262 +
  263 +/**
  264 + * 获得Object的acl
  265 + *
  266 + * @param getObjectACLRequest 设置获取object的acl的request信息
  267 + *
  268 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  269 + */
  270 +- (KS3GetObjectACLResponse *)getObjectACL:
  271 + (KS3GetObjectACLRequest *)getObjectACLRequest;
  272 +/**
  273 + * 设置Object的acl
  274 + *
  275 + * @param setObjectACLRequest 设置设置object的acl的request信息
  276 + *
  277 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  278 + */
  279 +
  280 +- (KS3SetObjectACLResponse *)setObjectACL:
  281 + (KS3SetObjectACLRequest *)setObjectACLRequest;
  282 +/**
  283 + * 设置ObjectGrantACL
  284 + *
  285 + * @param setObjectGrantACLRequest 设置设置ObjectGrantACL的request信息
  286 + *
  287 + * @return @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  288 + */
  289 +
  290 +- (KS3SetObjectGrantACLResponse *)setObjectGrantACL:
  291 + (KS3SetObjectGrantACLRequest *)setObjectGrantACLRequest;
  292 +/**
  293 + * 调用这个接口会初始化一个分块上传
  294 + *
  295 + * @param theKey 指的是上传到bucketName的文件名称
  296 + * @param bucketName
  297 + *
  298 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  299 + */
  300 +- (KS3MultipartUpload *)initiateMultipartUploadWithRequest:
  301 + (KS3InitiateMultipartUploadRequest *)request;
  302 +
  303 +- (KS3InitiateMultipartUploadResponse *)initiateMultipartUploadWithRequestAndResponse:(KS3InitiateMultipartUploadRequest *)request;
  304 +
  305 +/**
  306 + * 上传分块
  307 + *
  308 + * @param uploadPartRequest 指定上传分块的request信息
  309 + *
  310 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  311 + */
  312 +- (KS3UploadPartResponse *)uploadPart:(KS3UploadPartRequest *)uploadPartRequest;
  313 +/**
  314 + * 获取相册分块数据
  315 + *
  316 + * @param partNum 从1开始计数,第一块partNum = 1
  317 + * @param partLength 每一块数据的大小,单位为字节
  318 + * @param alassetURL 形如assets-library://asset/asset.mov?
  319 + id=25A47CAE-87CF-47A3-8834-592D60841DDB&ext=mov 的相册地址 ,
  320 + *
  321 + * @return
  322 + */
  323 +- (NSData *)getUploadPartDataWithPartNum:(NSInteger)partNum
  324 + partLength:(NSInteger)partlength
  325 + alassetURL:(NSURL *)alassetURL;
  326 +/**
  327 + * 获取相册分块数据
  328 + *
  329 + * @param partNum 从1开始计数,第一块partNum = 1
  330 + * @param partLength 每一块数据的大小,单位为字节
  331 + * @param alassetURL Alasset对象,是获取视频数据的类 ,
  332 + *
  333 + * @return
  334 + */
  335 +- (NSData *)getUploadPartDataWithPartNum:(NSInteger)partNum
  336 + partLength:(NSInteger)partlength
  337 + Alasset:(ALAsset *)assets;
  338 +/**
  339 + * 获取相册类
  340 + * @param alassetURL 开头是assets-library://标识Alasset类的相册地址
  341 + *
  342 + * @return
  343 + */
  344 +- (ALAsset *)getAlassetFromAlassetURL:(NSURL *)alassetURL;
  345 +/**
  346 + * 罗列出已经上传的块
  347 + *
  348 + * @param listPartsRequest 设置罗列已经上传的分块的request信息
  349 + *
  350 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  351 + */
  352 +
  353 +- (KS3ListPartsResponse *)listParts:(KS3ListPartsRequest *)listPartsRequest;
  354 +/**
  355 + * 组装所有分块上传的文件
  356 + *
  357 + * @param completeMultipartUploadRequest 设置组装所有分块的http信息
  358 + *
  359 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  360 + */
  361 +- (KS3CompleteMultipartUploadResponse *)completeMultipartUpload:
  362 + (KS3CompleteMultipartUploadRequest *)completeMultipartUploadRequest;
  363 +/**
  364 + * 取消分块上传
  365 + *
  366 + * @param abortMultipartRequest 设置分块文件属性
  367 + *
  368 + * @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
  369 + */
  370 +- (KS3AbortMultipartUploadResponse *)abortMultipartUpload:
  371 + (KS3AbortMultipartUploadRequest *)abortMultipartRequest;
  372 +/**
  373 + * 下载Object数据
  374 + *
  375 + * @param bucketName
  376 + * @param key 文件所在的仓库路径(和listObject的key对应)(具体的参照demo)
  377 + * @param downloadBeginBlock 下载开始回调
  378 + * @param downloadFileCompleteion 下载完成回调
  379 + * @param downloadProgressChangeBlock 下载进度回调
  380 + * @param failedBlock 下载失败回调
  381 + *
  382 + * @return 一个下载器对象(里面有文件属性)
  383 + */
  384 +- (KS3DownLoad *)
  385 +downloadObjectWithBucketName:(NSString *)bucketName
  386 + key:(NSString *)key
  387 + downloadBeginBlock:(KSS3DownloadBeginBlock)downloadBeginBlock
  388 + downloadFileCompleteion:
  389 + (kSS3DownloadFileCompleteionBlock)downloadFileCompleteion
  390 + downloadProgressChangeBlock:
  391 + (KSS3DownloadProgressChangeBlock)downloadProgressChangeBlock
  392 + failedBlock:(KSS3DownloadFailedBlock)failedBlock;
  393 +
  394 +/**
  395 + * 返回版本信息
  396 + *
  397 + * @return 版本信息
  398 + */
  399 ++ (NSString *)apiVersion;
  400 +
  401 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.m 0 → 100644
  1 +//
  2 +// KingSoftS3Client.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Client.h"
  10 +#import "KS3AbortMultipartUploadRequest.h"
  11 +#import "KS3AbortMultipartUploadResponse.h"
  12 +#import "KS3AccessControlList.h"
  13 +#import "KS3AuthUtils.h"
  14 +#import "KS3ClientException.h"
  15 +#import "KS3CompleteMultipartUploadRequest.h"
  16 +#import "KS3CompleteMultipartUploadResponse.h"
  17 +#import "KS3CreateBucketRequest.h"
  18 +#import "KS3CreateBucketResponse.h"
  19 +#import "KS3Credentials.h"
  20 +#import "KS3DeleteBucketRequest.h"
  21 +#import "KS3DeleteBucketResponse.h"
  22 +#import "KS3DeleteBucketResponse.h"
  23 +#import "KS3DeleteObjectRequest.h"
  24 +#import "KS3DeleteObjectResponse.h"
  25 +#import "KS3DownLoad.h"
  26 +#import "KS3ErrorHandler.h"
  27 +#import "KS3GetACLRequest.h"
  28 +#import "KS3GetACLResponse.h"
  29 +#import "KS3GetBucketLoggingRequest.h"
  30 +#import "KS3GetBucketLoggingResponse.h"
  31 +#import "KS3GetObjectACLRequest.h"
  32 +#import "KS3GetObjectACLResponse.h"
  33 +#import "KS3GetObjectRequest.h"
  34 +#import "KS3GetObjectResponse.h"
  35 +#import "KS3HeadBucketRequest.h"
  36 +#import "KS3HeadBucketResponse.h"
  37 +#import "KS3HeadObjectRequest.h"
  38 +#import "KS3HeadObjectResponse.h"
  39 +#import "KS3InitiateMultipartUploadRequest.h"
  40 +#import "KS3InitiateMultipartUploadResponse.h"
  41 +#import "KS3ListBucketsRequest.h"
  42 +#import "KS3ListBucketsResponse.h"
  43 +#import "KS3ListBucketsResult.h"
  44 +#import "KS3ListObjectsRequest.h"
  45 +#import "KS3ListObjectsResponse.h"
  46 +#import "KS3ListObjectsResult.h"
  47 +#import "KS3ListPartsRequest.h"
  48 +#import "KS3ListPartsResponse.h"
  49 +#import "KS3PutObjectCopyRequest.h"
  50 +#import "KS3PutObjectCopyResponse.h"
  51 +#import "KS3PutObjectRequest.h"
  52 +#import "KS3PutObjectResponse.h"
  53 +#import "KS3SDKUtil.h"
  54 +#import "KS3SetACLRequest.h"
  55 +#import "KS3SetACLResponse.h"
  56 +#import "KS3SetBucketLoggingRequest.h"
  57 +#import "KS3SetBucketLoggingResponse.h"
  58 +#import "KS3SetGrantACLRequest.h"
  59 +#import "KS3SetGrantACLResponse.h"
  60 +#import "KS3SetObjectACLRequest.h"
  61 +#import "KS3SetObjectACLResponse.h"
  62 +#import "KS3SetObjectGrantACLRequest.h"
  63 +#import "KS3SetObjectGrantACLResponse.h"
  64 +#import "KS3UploadPartRequest.h"
  65 +#import "KS3UploadPartResponse.h"
  66 +#import <AssetsLibrary/AssetsLibrary.h>
  67 +static NSString *const KingSoftYun_Host_Name =
  68 +@"http://ks3-cn-beijing.ksyun.com";
  69 +static NSTimeInterval const KingSoftYun_RequestTimeout = 600; // in seconds
  70 +
  71 +@interface KS3Client () <NSURLConnectionDataDelegate>
  72 +
  73 +@property(strong, nonatomic) KSS3GetTokenSuccessBlock tokenBlock;
  74 +@property(strong, nonatomic) NSMutableData *tokenData;
  75 +@property(assign, nonatomic) KS3BucketDomainRegion bucketDomainRegion;
  76 +@property(copy, nonatomic) NSString *bucketDomainIp;
  77 +@property(strong, nonatomic) NSString *customBucketDomain; //用户自定义的domain
  78 +@property(strong, nonatomic) ALAssetsLibrary *assetsLibrary;
  79 +
  80 +@end
  81 +
  82 +@implementation KS3Client
  83 +
  84 ++ (KS3Client *)initialize {
  85 + static KS3Client *shareObj = nil;
  86 + static dispatch_once_t onceToken;
  87 + dispatch_once(&onceToken, ^{
  88 + shareObj = [[self alloc] init];
  89 + shareObj.bucketDomainRegion = KS3BucketBeijing;
  90 + shareObj.bucketDomainIp = @"ks3-cn-beijing.ksyun.com";
  91 + shareObj.assetsLibrary = [[ALAssetsLibrary alloc] init];
  92 + shareObj.enableHTTPS = YES;
  93 + });
  94 + return shareObj;
  95 +}
  96 +
  97 +#pragma mark - Request Protocol
  98 +- (NSString *)requestProtocol {
  99 + return self.enableHTTPS ? @"https" : @"http";
  100 +}
  101 +
  102 +#pragma mark - Init credentials
  103 +
  104 +- (void)connectWithAccessKey:(NSString *)accessKey
  105 + withSecretKey:(NSString *)secretKey {
  106 + if (_credentials == nil) {
  107 + _credentials = [[KS3Credentials alloc] initWithAccessKey:accessKey
  108 + withSecretKey:secretKey];
  109 + }
  110 +}
  111 +
  112 +- (void)setBucketDomainWithRegion:(KS3BucketDomainRegion)domainRegion {
  113 + _bucketDomainRegion = domainRegion;
  114 +}
  115 +
  116 +- (NSString *)getBucketDomain {
  117 + if (_customBucketDomain != nil) {
  118 + return _customBucketDomain;
  119 + }
  120 +
  121 + if (_bucketDomainRegion == KS3BucketBeijing) {
  122 + return @"ks3-cn-beijing.ksyun.com";
  123 + }
  124 +
  125 + if (_bucketDomainRegion == KS3BucketAmerica) {
  126 + return @"ks3-us-west-1.ksyun.com";
  127 + }
  128 + if (_bucketDomainRegion == KS3BucketHongkong) {
  129 + return @"ks3-cn-hk-1.ksyun.com";
  130 + }
  131 + if (_bucketDomainRegion == KS3BucketHangzhou) {
  132 + return @"kss.ksyun.com";
  133 + }
  134 + if (_bucketDomainRegion == KS3BucketShanghai) {
  135 + return @"ks3-cn-shanghai.ksyun.com";
  136 + }
  137 + return @"ks3-cn-beijing.ksyun.com";
  138 +}
  139 +
  140 +- (NSString *)getCustomBucketDomain {
  141 + if (_customBucketDomain) {
  142 + return _customBucketDomain;
  143 + } else {
  144 + return nil;
  145 + }
  146 +}
  147 +
  148 +- (void)setBucketDomain:(NSString *)domainRegion {
  149 + _customBucketDomain = domainRegion;
  150 +}
  151 +
  152 +#pragma mark - Buckets
  153 +
  154 +- (NSArray *)listBuckets:(KS3ListBucketsRequest *)listBucketsRequest {
  155 + KS3ListBucketsResponse *listResponse =
  156 + (KS3ListBucketsResponse *)[self invoke:listBucketsRequest];
  157 + if (listResponse.error == nil) {
  158 + if (![listResponse respondsToSelector:@selector(listBucketsResult)]) {
  159 + return nil;
  160 + }
  161 + if (listResponse.listBucketsResult != nil &&
  162 + listResponse.listBucketsResult.buckets != nil) {
  163 + return [NSArray arrayWithArray:listResponse.listBucketsResult.buckets];
  164 + }
  165 + }
  166 + return nil;
  167 +}
  168 +
  169 +- (KS3CreateBucketResponse *)createBucket:
  170 +(KS3CreateBucketRequest *)createBucketRequest {
  171 + return (KS3CreateBucketResponse *)[self invoke:createBucketRequest];
  172 +}
  173 +
  174 +- (KS3DeleteBucketResponse *)deleteBucket:
  175 +(KS3DeleteBucketRequest *)deleteBucketRequest {
  176 + return (KS3DeleteBucketResponse *)[self invoke:deleteBucketRequest];
  177 +}
  178 +
  179 +- (KS3HeadBucketResponse *)headBucket:(KS3HeadBucketRequest *)headBucketRequest;
  180 +{ return (KS3HeadBucketResponse *)[self invoke:headBucketRequest]; }
  181 +
  182 +- (KS3GetACLResponse *)getBucketACL:(KS3GetACLRequest *)getACLRequest {
  183 + return (KS3GetACLResponse *)[self invoke:getACLRequest];
  184 +}
  185 +
  186 +- (KS3SetACLResponse *)setBucketACL:(KS3SetACLRequest *)bucketACLRequest {
  187 + return (KS3SetACLResponse *)[self invoke:bucketACLRequest];
  188 +}
  189 +
  190 +- (KS3GetBucketLoggingResponse *)getBucketLogging:
  191 +(KS3GetBucketLoggingRequest *)getBucketLoggingRequest {
  192 + return (KS3GetBucketLoggingResponse *)[self invoke:getBucketLoggingRequest];
  193 +}
  194 +
  195 +- (KS3SetBucketLoggingResponse *)setBucketLogging:
  196 +(KS3SetBucketLoggingRequest *)setBucketTaggingRequest {
  197 + return (KS3SetBucketLoggingResponse *)[self invoke:setBucketTaggingRequest];
  198 +}
  199 +
  200 +#pragma mark - Objects
  201 +
  202 +- (KS3ListObjectsResponse *)listObjects:
  203 +(KS3ListObjectsRequest *)listObjectsRequest {
  204 + return (KS3ListObjectsResponse *)[self invoke:listObjectsRequest];
  205 +}
  206 +
  207 +- (KS3GetObjectResponse *)getObject:(KS3GetObjectRequest *)getObjectRequest {
  208 + return (KS3GetObjectResponse *)[self invoke:getObjectRequest];
  209 +}
  210 +
  211 +- (KS3DeleteObjectResponse *)deleteObject:
  212 +(KS3DeleteObjectRequest *)deleteObjectRequest {
  213 + return (KS3DeleteObjectResponse *)[self invoke:deleteObjectRequest];
  214 +}
  215 +
  216 +- (KS3HeadObjectResponse *)headObject:
  217 +(KS3HeadObjectRequest *)headObjectRequest {
  218 + return (KS3HeadObjectResponse *)[self invoke:headObjectRequest];
  219 +}
  220 +
  221 +- (KS3PutObjectResponse *)putObject:(KS3PutObjectRequest *)putObjectRequest {
  222 + return (KS3PutObjectResponse *)[self invoke:putObjectRequest];
  223 +}
  224 +
  225 +- (KS3PutObjectCopyResponse *)putObjectCopy:
  226 +(KS3PutObjectCopyRequest *)putObjectCopyRequest {
  227 + return (KS3PutObjectCopyResponse *)[self invoke:putObjectCopyRequest];
  228 +}
  229 +
  230 +- (KS3GetObjectACLResponse *)getObjectACL:
  231 +(KS3GetObjectACLRequest *)getObjectACLRequest {
  232 + return (KS3GetObjectACLResponse *)[self invoke:getObjectACLRequest];
  233 +}
  234 +
  235 +- (KS3SetObjectACLResponse *)setObjectACL:
  236 +(KS3SetObjectACLRequest *)setObjectACLRequest {
  237 + return (KS3SetObjectACLResponse *)[self invoke:setObjectACLRequest];
  238 +}
  239 +
  240 +- (KS3SetObjectGrantACLResponse *)setObjectGrantACL:
  241 +(KS3SetObjectGrantACLRequest *)setObjectGrantACLRequest {
  242 + return (KS3SetObjectGrantACLResponse *)[self invoke:setObjectGrantACLRequest];
  243 +}
  244 +
  245 +- (KS3SetGrantACLResponse *)setGrantACL:
  246 +(KS3SetGrantACLRequest *)setGrantACLRequest {
  247 + return (KS3SetGrantACLResponse *)[self invoke:setGrantACLRequest];
  248 +}
  249 +
  250 +#pragma mark - MultipartUpload
  251 +
  252 +- (KS3MultipartUpload *)initiateMultipartUploadWithRequest:
  253 +(KS3InitiateMultipartUploadRequest *)request {
  254 + KS3InitiateMultipartUploadResponse *response =
  255 + (KS3InitiateMultipartUploadResponse *)[self invoke:request];
  256 + return response.multipartUpload;
  257 +}
  258 +
  259 +- (KS3InitiateMultipartUploadResponse *)initiateMultipartUploadWithRequestAndResponse:
  260 +(KS3InitiateMultipartUploadRequest *)request {
  261 + KS3InitiateMultipartUploadResponse *response =
  262 + (KS3InitiateMultipartUploadResponse *)[self invoke:request];
  263 + return response;
  264 +}
  265 +
  266 +- (KS3UploadPartResponse *)uploadPart:
  267 +(KS3UploadPartRequest *)uploadPartRequest {
  268 + return (KS3UploadPartResponse *)[self invoke:uploadPartRequest];
  269 +}
  270 +
  271 +- (NSData *)getUploadPartDataWithPartNum:(NSInteger)partNum
  272 + partLength:(NSInteger)partlength
  273 + alassetURL:(NSURL *)alassetURL {
  274 + if (alassetURL == nil || alassetURL.absoluteString.length == 0) {
  275 + NSLog(@"请检查AlassetURL");
  276 + return nil;
  277 + }
  278 + if (partlength < 5 * 1024 * 1024) {
  279 + NSLog(@"分块上传最小块为5MB");
  280 + return nil;
  281 + }
  282 + if (partNum < 0) {
  283 + NSLog(@"partNum不合法,请检查");
  284 + return nil;
  285 + }
  286 +
  287 + ALAsset *alasset =
  288 + [[KS3Client initialize] getAlassetFromAlassetURL:alassetURL];
  289 + return [self getUploadPartDataWithPartNum:partNum
  290 + partLength:partlength
  291 + Alasset:alasset];
  292 +}
  293 +
  294 +- (NSData *)getUploadPartDataWithPartNum:(NSInteger)partNum
  295 + partLength:(NSInteger)partlength
  296 + Alasset:(ALAsset *)assets {
  297 +
  298 + if (assets == nil) {
  299 + NSLog(@"请检查Alasset");
  300 + return nil;
  301 + }
  302 + if (partlength < 5 * 1024 * 1024) {
  303 + NSLog(@"分块上传最小块为5MB");
  304 + return nil;
  305 + }
  306 + if (partNum < 1) {
  307 + NSLog(@"partNum不合法,请检查");
  308 + return nil;
  309 + }
  310 + BOOL endOfStreamReached = NO;
  311 + NSUInteger currentOffset = (partNum - 1) * partlength; //当前偏移量
  312 + NSError *error;
  313 + NSMutableData *mData = [[NSMutableData alloc] init];
  314 + while (!endOfStreamReached) {
  315 + NSInteger maxLength = 256 * 1024;
  316 + uint8_t readBuffer[maxLength];
  317 + NSInteger bytesRead = [assets.defaultRepresentation getBytes:readBuffer
  318 + fromOffset:currentOffset
  319 + length:maxLength
  320 + error:&error];
  321 + if (bytesRead <= 0) {
  322 + //读取完了或者读取地址不正确,导致读取为空
  323 + endOfStreamReached = YES;
  324 + if (mData.length > 0) {
  325 + return mData;
  326 + }
  327 + } else {
  328 + [mData appendBytes:readBuffer length:bytesRead];
  329 + currentOffset += bytesRead;
  330 + //正在读取,满5M则本地存储分块
  331 + if (mData.length >= partlength) {
  332 + return mData;
  333 + }
  334 + }
  335 + }
  336 + return mData;
  337 +}
  338 +
  339 +- (ALAsset *)getAlassetFromAlassetURL:(NSURL *)alassetURL {
  340 +
  341 + __block ALAsset *assets;
  342 + dispatch_semaphore_t sem = dispatch_semaphore_create(0);
  343 + dispatch_queue_t concurrentQueue =
  344 + dispatch_queue_create("my.concurrent.queue", DISPATCH_QUEUE_SERIAL);
  345 + dispatch_async(concurrentQueue, ^{
  346 +
  347 + [self.assetsLibrary assetForURL:alassetURL
  348 + resultBlock:^(ALAsset *asset) {
  349 + //本地存储的上传文件
  350 + assets = asset;
  351 + dispatch_semaphore_signal(sem);
  352 + }
  353 + failureBlock:^(NSError *error) {
  354 + NSLog(@"读取AssetURL出错,%@", error.localizedDescription);
  355 + dispatch_semaphore_signal(sem);
  356 + }];
  357 +
  358 + });
  359 + dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
  360 + return assets;
  361 +}
  362 +- (KS3ListPartsResponse *)listParts:(KS3ListPartsRequest *)listPartsRequest {
  363 + return (KS3ListPartsResponse *)[self invoke:listPartsRequest];
  364 +}
  365 +
  366 +- (KS3CompleteMultipartUploadResponse *)completeMultipartUpload:
  367 +(KS3CompleteMultipartUploadRequest *)completeMultipartUploadRequest {
  368 + return (KS3CompleteMultipartUploadResponse *)[self
  369 + invoke:completeMultipartUploadRequest];
  370 +}
  371 +
  372 +- (KS3AbortMultipartUploadResponse *)abortMultipartUpload:
  373 +(KS3AbortMultipartUploadRequest *)abortMultipartRequest {
  374 + return (KS3AbortMultipartUploadResponse *)[self invoke:abortMultipartRequest];
  375 +}
  376 +
  377 ++ (id)constructResponseFromRequest:(KS3Request *)request {
  378 + NSString *requestClassName = NSStringFromClass([request class]);
  379 + NSString *responseClassName =
  380 + [[requestClassName substringToIndex:[requestClassName length] - 7]
  381 + stringByAppendingFormat:@"Response"];
  382 + id response = [[NSClassFromString(responseClassName) alloc] init];
  383 + if (nil == response) {
  384 + if ([requestClassName isEqualToString:@"KS3UploadRequest"]) {
  385 + response = [[KS3InitiateMultipartUploadResponse alloc] init];
  386 + } else {
  387 + response = [[KS3Response alloc] init];
  388 + }
  389 + }
  390 + return response;
  391 +}
  392 +
  393 +- (NSMutableURLRequest *)signKSS3Request:(KS3Request *)request {
  394 + request.credentials = _credentials;
  395 + KS3URLRequest *urlRequest = [request configureURLRequest];
  396 + return urlRequest;
  397 +}
  398 +
  399 +- (NSTimeInterval)getRequestTimeOut:(KS3Request *)request {
  400 + NSTimeInterval ksyRequestTimeOut = request.timeoutInterval;
  401 + if (ksyRequestTimeOut == 0 || ksyRequestTimeOut < 0) {
  402 + ksyRequestTimeOut = KingSoftYun_RequestTimeout;
  403 + }
  404 + return ksyRequestTimeOut;
  405 +}
  406 +- (KS3Response *)invoke:(KS3Request *)request {
  407 + NSString *message = nil;
  408 + if ((_credentials.accessKey == nil || _credentials.secretKey == nil) &&
  409 + _credentials != nil) {
  410 + NSLog(@"######### 使用本地AK/SK签名, 请正确配置本地AK/SK #############");
  411 + message = @"请正确配置本地AK/SK";
  412 + }
  413 + if (message) {
  414 + KS3Response *response = [KS3Response new];
  415 + response.error =
  416 + [KS3ErrorHandler errorFromExceptionWithThrowsExceptionOption:
  417 + [KS3ClientException exceptionWithMessage:message]];
  418 + return response;
  419 + }
  420 +
  421 + if (nil == request) {
  422 + KS3Response *response = [KS3Response new];
  423 + response.error = [KS3ErrorHandler
  424 + errorFromExceptionWithThrowsExceptionOption:
  425 + [KS3ClientException
  426 + exceptionWithMessage:@"Request cannot be nil."]];
  427 + return response;
  428 + }
  429 + KS3ClientException *clientException = [request validate];
  430 + if (clientException != nil) {
  431 + KS3Response *response = [KS3Response new];
  432 + response.error = [KS3ErrorHandler
  433 + errorFromExceptionWithThrowsExceptionOption:((NSException *)
  434 + clientException)];
  435 + return response;
  436 + }
  437 + NSMutableURLRequest *urlRequest = [self signKSS3Request:request];
  438 +
  439 + [urlRequest setTimeoutInterval:[self getRequestTimeOut:request]];
  440 + return [self startURLRequest:urlRequest
  441 + KS3Request:request
  442 + token:request.strKS3Token];
  443 +}
  444 +
  445 +- (KS3Response *)startURLRequest:(NSMutableURLRequest *)urlRequest
  446 + KS3Request:(KS3Request *)request
  447 + token:(NSString *)strToken {
  448 + if (strToken != nil) {
  449 + [urlRequest setValue:strToken forHTTPHeaderField:@"Authorization"];
  450 + }
  451 + KS3Response *response = [KS3Client constructResponseFromRequest:request];
  452 + [response setRequest:request];
  453 + if ([request delegate] != nil) {
  454 + NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest
  455 + delegate:response
  456 + startImmediately:NO];
  457 + request.urlConnection = urlConnection;
  458 +
  459 + [NSTimer scheduledTimerWithTimeInterval:[self getRequestTimeOut:request]
  460 + target:response
  461 + selector:@selector(timeout)
  462 + userInfo:nil
  463 + repeats:NO];
  464 +
  465 + dispatch_async(dispatch_get_main_queue(), ^{
  466 + [urlConnection start];
  467 + });
  468 + return nil;
  469 + }
  470 + NSURLConnection *urlConnection =
  471 + [[NSURLConnection alloc] initWithRequest:urlRequest
  472 + delegate:response
  473 + startImmediately:NO];
  474 + [urlConnection scheduleInRunLoop:[NSRunLoop currentRunLoop]
  475 + forMode:KSYS3DefaultRunLoopMode];
  476 + request.urlConnection = urlConnection;
  477 + [urlConnection start];
  478 +
  479 + NSTimer *timeoutTimer =
  480 + [NSTimer timerWithTimeInterval:[self getRequestTimeOut:request]
  481 + target:response
  482 + selector:@selector(timeout)
  483 + userInfo:nil
  484 + repeats:NO];
  485 + [[NSRunLoop currentRunLoop] addTimer:timeoutTimer
  486 + forMode:KSYS3DefaultRunLoopMode];
  487 + while (!response.isFinishedLoading) {
  488 + [[NSRunLoop currentRunLoop]
  489 + runMode:KSYS3DefaultRunLoopMode
  490 + beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
  491 + }
  492 + return response;
  493 +}
  494 +
  495 +#pragma mark - Download
  496 +
  497 +- (KS3DownLoad *)
  498 +downloadObjectWithBucketName:(NSString *)bucketName
  499 +key:(NSString *)key
  500 +downloadBeginBlock:(KSS3DownloadBeginBlock)downloadBeginBlock
  501 +downloadFileCompleteion:
  502 +(kSS3DownloadFileCompleteionBlock)downloadFileCompleteion
  503 +downloadProgressChangeBlock:
  504 +(KSS3DownloadProgressChangeBlock)downloadProgressChangeBlock
  505 +failedBlock:(KSS3DownloadFailedBlock)failedBlock {
  506 + if (!bucketName || !key) {
  507 + NSLog(@"bucket 或 key 不能为空");
  508 + return nil;
  509 + }
  510 +
  511 + if ((_credentials.accessKey == nil || _credentials.secretKey == nil) &&
  512 + _credentials != nil) {
  513 + NSLog(@"######### 使用本地AK/SK签名, 请正确配置本地AK/SK #############");
  514 + return nil;
  515 + }
  516 + NSLog(@"====== downloadObjectWithBucketName ======");
  517 + NSString *strHost = [NSString
  518 + stringWithFormat:@"%@://%@.%@/%@",
  519 + [[KS3Client initialize] requestProtocol], bucketName,
  520 + [[KS3Client initialize] getBucketDomain], key];
  521 + KS3DownLoad *downLoad = [[KS3DownLoad alloc] initWithUrl:strHost
  522 + credentials:
  523 + _credentials:
  524 + bucketName:key];
  525 + downLoad.downloadBeginBlock = downloadBeginBlock;
  526 + downLoad.downloadFileCompleteionBlock = downloadFileCompleteion;
  527 + downLoad.downloadProgressChangeBlock = downloadProgressChangeBlock;
  528 + downLoad.failedBlock = failedBlock;
  529 +
  530 + return downLoad;
  531 +}
  532 +
  533 ++ (NSString *)apiVersion {
  534 + return @"2.1.2";
  535 +}
  536 +
  537 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.h 0 → 100644
  1 +//
  2 +// KSS3BucketACLResult.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Grant.h"
  10 +#import "KS3Owner.h"
  11 +#import <Foundation/Foundation.h>
  12 +
  13 +@interface KS3BucketACLResult : NSObject
  14 +@property(strong, nonatomic) KS3Owner *owner;
  15 +@property(strong, nonatomic) NSMutableArray *accessControlList;
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.m 0 → 100644
  1 +//
  2 +// KSS3BucketACLResult.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketACLResult.h"
  10 +
  11 +@implementation KS3BucketACLResult
  12 +- (instancetype)init {
  13 + self = [super init];
  14 + if (self) {
  15 + _accessControlList = [[NSMutableArray alloc] init];
  16 + }
  17 + return self;
  18 +}
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.h 0 → 100644
  1 +//
  2 +// KSS3BucketACLXMLParser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketACLResult.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3BucketACLXMLParser : NSObject <NSXMLParserDelegate>
  13 +@property(strong, nonatomic) KS3BucketACLResult *listBuctkResult;
  14 +- (void)kSS3XMLarse:(NSData *)dataXml;
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.m 0 → 100644
  1 +//
  2 +// KSS3BucketACLXMLParser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketACLXMLParser.h"
  10 +#import "KS3Grant.h"
  11 +@interface KS3BucketACLXMLParser ()
  12 +@property(strong, nonatomic) NSString *currentTag;
  13 +@property(strong, nonatomic) NSMutableString *currentText;
  14 +@property(strong, nonatomic) KS3Grant *grant;
  15 +@property(strong, nonatomic) KS3Grantee *grantee;
  16 +@property(nonatomic) BOOL isOwnerParser;
  17 +@property(nonatomic) BOOL isGrantParser;
  18 +
  19 +@end
  20 +@implementation KS3BucketACLXMLParser
  21 +- (void)kSS3XMLarse:(NSData *)dataXml {
  22 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  23 + [parser setDelegate:self];
  24 + [parser parse];
  25 +}
  26 +
  27 +#pragma mark - Xml delegate
  28 +
  29 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  30 + _listBuctkResult = [[KS3BucketACLResult alloc] init];
  31 +}
  32 +
  33 +- (void)parser:(NSXMLParser *)parser
  34 + didStartElement:(NSString *)elementName
  35 + namespaceURI:(NSString *)namespaceURI
  36 + qualifiedName:(NSString *)qName
  37 + attributes:(NSDictionary *)attributeDict {
  38 + if (nil != _currentText) {
  39 + _currentText = nil;
  40 + }
  41 + _currentTag = elementName;
  42 +
  43 + if ([elementName isEqualToString:@"Owner"]) {
  44 + _listBuctkResult.owner = [KS3Owner new];
  45 + _isOwnerParser = YES;
  46 + _isGrantParser = NO;
  47 + }
  48 + if ([elementName isEqualToString:@"Grant"]) {
  49 + if (nil != _grant) {
  50 + _grant = nil;
  51 + }
  52 + if (nil != _grantee) {
  53 + _grantee = nil;
  54 + }
  55 + _grantee = [KS3Grantee new];
  56 + _grant = [KS3Grant new];
  57 +
  58 + _isGrantParser = YES;
  59 + _isOwnerParser = NO;
  60 + }
  61 +}
  62 +
  63 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  64 + if (nil == _currentText) {
  65 + _currentText = [[NSMutableString alloc] init];
  66 + }
  67 + [_currentText appendString:string];
  68 +}
  69 +
  70 +- (void)parser:(NSXMLParser *)parser
  71 + didEndElement:(NSString *)elementName
  72 + namespaceURI:(NSString *)namespaceURI
  73 + qualifiedName:(NSString *)qName {
  74 + if (_isOwnerParser) {
  75 + if ([elementName isEqualToString:@"ID"]) {
  76 + _listBuctkResult.owner.ID = _currentText;
  77 + }
  78 + if ([elementName isEqualToString:@"DisplayName"]) {
  79 + _listBuctkResult.owner.displayName = _currentText;
  80 + }
  81 + }
  82 + if (_isGrantParser) {
  83 + if ([elementName isEqualToString:@"ID"]) {
  84 + _grantee.ID = _currentText;
  85 + }
  86 + if ([elementName isEqualToString:@"DisplayName"]) {
  87 + _grantee.displayName = _currentText;
  88 + }
  89 + if ([elementName isEqualToString:@"URI"]) {
  90 + _grantee.URI = _currentText;
  91 + }
  92 + if ([elementName isEqualToString:@"Permission"]) {
  93 + _grant.permission = _currentText;
  94 + }
  95 + }
  96 + if ([elementName isEqualToString:@"Owner"]) {
  97 + _isOwnerParser = NO;
  98 + }
  99 + if ([elementName isEqualToString:@"Grant"]) {
  100 + _isGrantParser = NO;
  101 + _grant.grantee = _grantee;
  102 + [_listBuctkResult.accessControlList addObject:_grant];
  103 + }
  104 +}
  105 +
  106 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  107 +}
  108 +
  109 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  110 +}
  111 +
  112 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.h 0 → 100644
  1 +//
  2 +// KS3BucketNameUtilities.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/23/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3ClientException;
  11 +@interface KS3BucketNameUtilities : NSObject
  12 ++ (KS3ClientException *)validateBucketName:(NSString *)theBucketName;
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.m 0 → 100644
  1 +//
  2 +// KS3BucketNameUtilities.m
  3 +// KS3YunSDK
  4 +//
  5 +// Created by JackWong on 12/23/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketNameUtilities.h"
  10 +#import "KS3ClientException.h"
  11 +#import "KS3SDKUtil.h"
  12 +#import <ctype.h>
  13 +@implementation KS3BucketNameUtilities
  14 ++ (KS3ClientException *)validateBucketName:(NSString *)theBucketName {
  15 + if (theBucketName == nil) {
  16 + return [KS3ClientException
  17 + exceptionWithMessage:@"Bucket name should not be nil."];
  18 + }
  19 +
  20 + if ([theBucketName length] < 3 || [theBucketName length] > 255) {
  21 + return [KS3ClientException
  22 + exceptionWithMessage:
  23 + @"Bucket name should be between 3 and 255 characters in length."];
  24 + }
  25 + if ([KS3SDKUtil isVaildBucketName:theBucketName]) {
  26 + return [KS3ClientException
  27 + exceptionWithMessage:
  28 + @"Bucket name 只能包含小写英文字母(a-z),数字,点(.),中线."];
  29 + }
  30 +
  31 + if ([theBucketName hasPrefix:@"kss"]) {
  32 + return [KS3ClientException
  33 + exceptionWithMessage:@"Bucket name should not start with a 'kss'."];
  34 + }
  35 + if ([theBucketName hasPrefix:@"."]) {
  36 + return [KS3ClientException
  37 + exceptionWithMessage:@"Bucket name should not start with a '.'."];
  38 + }
  39 + if ([theBucketName hasPrefix:@"-"]) {
  40 + return [KS3ClientException
  41 + exceptionWithMessage:@"Bucket name should not start with a '-'."];
  42 + }
  43 + if ([KS3SDKUtil isIpString:theBucketName]) {
  44 + return [KS3ClientException
  45 + exceptionWithMessage:@"Bucket name should not be a IP"];
  46 + }
  47 +
  48 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@".."])
  49 + // {
  50 + // return [KS3ClientException exceptionWithMessage : @"Bucket name
  51 + // should not contain two adjacent periods."];
  52 + // }
  53 + //
  54 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@"_"])
  55 + // {
  56 + // return [KS3ClientException exceptionWithMessage : @"Bucket name
  57 + // should not contain '_'."];
  58 + // }
  59 + //
  60 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@"-."]
  61 + // ||
  62 + // [KS3BucketNameUtilities contains:theBucketName searchString:@".-"])
  63 + // {
  64 + // return [KS3ClientException exceptionWithMessage : @"Bucket name
  65 + // should not contain dashes next to periods."];
  66 + // }
  67 + //
  68 + // if ( [[theBucketName lowercaseString] isEqualToString:theBucketName] ==
  69 + // NO) {
  70 + // return [KS3ClientException exceptionWithMessage : @"Bucket name
  71 + // should not contain upper case characters."];
  72 + // }
  73 +
  74 + return nil;
  75 +}
  76 ++ (bool)isDNSBucketName:(NSString *)theBucketName;
  77 +{
  78 + if (theBucketName == nil) {
  79 + return NO;
  80 + }
  81 +
  82 + if ([theBucketName length] < 3 || [theBucketName length] > 255) {
  83 + return NO;
  84 + }
  85 +
  86 + if ([theBucketName hasPrefix:@"-"]) {
  87 + return NO;
  88 + }
  89 + //
  90 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@"_"])
  91 + // {
  92 + // return NO;
  93 + // }
  94 + //
  95 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@"."])
  96 + // {
  97 + // return NO;
  98 + // }
  99 + //
  100 + // if ( [KS3BucketNameUtilities contains:theBucketName searchString:@"-."]
  101 + // ||
  102 + // [KS3BucketNameUtilities contains:theBucketName searchString:@".-"])
  103 + // {
  104 + // return NO;
  105 + // }
  106 + //
  107 + // if ( [[theBucketName lowercaseString] isEqualToString:theBucketName] ==
  108 + // NO) {
  109 + // return NO;
  110 + // }
  111 +
  112 + return YES;
  113 +}
  114 +
  115 ++ (bool)contains:(NSString *)sourceString
  116 + searchString:(NSString *)searchString {
  117 + NSRange range = [sourceString rangeOfString:searchString];
  118 +
  119 + return (range.location != NSNotFound);
  120 +}
  121 +
  122 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.h 0 → 100644
  1 +//
  2 +// KSS3CreateBucketRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +@interface KS3CreateBucketRequest : KS3Request
  11 +- (instancetype)initWithName:(NSString *)bucketName;
  12 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.m 0 → 100644
  1 +//
  2 +// KSS3CreateBucketRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CreateBucketRequest.h"
  10 +#import "KS3BucketNameUtilities.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +@implementation KS3CreateBucketRequest
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.httpMethod = kHttpMethodPut;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.kSYResource = [NSString stringWithFormat:@"/%@/", self.bucket];
  23 + self.host = [NSString
  24 + stringWithFormat:@"%@://%@.%@",
  25 + [[KS3Client initialize] requestProtocol], self.bucket,
  26 + [[KS3Client initialize] getBucketDomain]];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +- (KS3ClientException *)validate {
  32 + KS3ClientException *clientException = [super validate];
  33 + if (!clientException) {
  34 + clientException = [KS3BucketNameUtilities validateBucketName:self.bucket];
  35 + }
  36 + return clientException;
  37 +}
  38 +
  39 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.h 0 → 100644
  1 +//
  2 +// KSS3CreateBucketResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3CreateBucketResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.m 0 → 100644
  1 +//
  2 +// KSS3CreateBucketResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CreateBucketResponse.h"
  10 +
  11 +@implementation KS3CreateBucketResponse
  12 +- (void)processBody {
  13 +}
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.h 0 → 100644
  1 +//
  2 +// KSS3DeleteBucketRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3DeleteBucketRequest : KS3Request
  12 +
  13 +- (instancetype)initWithName:(NSString *)bucketName;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.m 0 → 100644
  1 +//
  2 +// KSS3DeleteBucketRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3DeleteBucketRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3ClientException.h"
  12 +#import "KS3Constants.h"
  13 +@implementation KS3DeleteBucketRequest
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.httpMethod = kHttpMethodDelete;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.kSYResource = [NSString stringWithFormat:@"/%@/", self.bucket];
  23 + self.host = [NSString
  24 + stringWithFormat:@"%@://%@.%@",
  25 + [[KS3Client initialize] requestProtocol], self.bucket,
  26 + [[KS3Client initialize] getBucketDomain]];
  27 + }
  28 + return self;
  29 +}
  30 +- (KS3ClientException *)validate {
  31 + KS3ClientException *clientException = [super validate];
  32 + if (clientException == nil) {
  33 + if (nil == self.bucket) {
  34 + clientException = [KS3ClientException
  35 + exceptionWithMessage:@"Bucket Name should not be nil."];
  36 + }
  37 + }
  38 + return clientException;
  39 +}
  40 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.h 0 → 100644
  1 +//
  2 +// KSS3DeleteBucketResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/10/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3DeleteBucketResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.m 0 → 100644
  1 +//
  2 +// KSS3DeleteBucketResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/10/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3DeleteBucketResponse.h"
  10 +
  11 +@implementation KS3DeleteBucketResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3BucketACLRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3GetACLRequest : KS3Request
  12 +- (instancetype)initWithName:(NSString *)bucketName;
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3BucketACLRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetACLRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3GetACLRequest
  13 +
  14 +- (instancetype)initWithName:(NSString *)bucketName {
  15 + self = [super init];
  16 + if (self) {
  17 + self.bucket = [self URLEncodedString:bucketName];
  18 + self.httpMethod = kHttpMethodGet;
  19 + self.contentMd5 = @"";
  20 + self.kSYResource = [NSString stringWithFormat:@"/%@/?acl", self.bucket];
  21 + self.host = [NSString
  22 + stringWithFormat:@"%@://%@.%@/?acl",
  23 + [[KS3Client initialize] requestProtocol], self.bucket,
  24 + [[KS3Client initialize] getBucketDomain]];
  25 + }
  26 + return self;
  27 +}
  28 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3BucketACLResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@class KS3BucketACLResult;
  11 +@interface KS3GetACLResponse : KS3Response
  12 +
  13 +@property(nonatomic, strong) KS3BucketACLResult *listBucketsResult;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3BucketACLResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetACLResponse.h"
  10 +#import "KS3BucketACLResult.h"
  11 +#import "KS3BucketACLXMLParser.h"
  12 +@implementation KS3GetACLResponse
  13 +
  14 +- (void)processBody {
  15 + KS3BucketACLXMLParser *xmlParser = [[KS3BucketACLXMLParser alloc] init];
  16 + [xmlParser kSS3XMLarse:body];
  17 + _listBucketsResult = xmlParser.listBuctkResult;
  18 +}
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.h 0 → 100644
  1 +//
  2 +// KSS3GetBucketLoggingRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3GetBucketLoggingRequest : KS3Request
  12 +@property(nonatomic, strong) NSString *prefix;
  13 +
  14 +@property(nonatomic, strong) NSString *marker;
  15 +
  16 +@property(nonatomic) int32_t maxKeys;
  17 +
  18 +@property(nonatomic, retain) NSString *delimiter;
  19 +
  20 +- (instancetype)initWithName:(NSString *)bucketName;
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.m 0 → 100644
  1 +//
  2 +// KSS3GetBucketLoggingRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetBucketLoggingRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3SDKUtil.h"
  13 +@implementation KS3GetBucketLoggingRequest
  14 +- (instancetype)initWithName:(NSString *)bucketName {
  15 + self = [super init];
  16 + if (self) {
  17 + self.bucket = [self URLEncodedString:bucketName];
  18 + self.httpMethod = kHttpMethodGet;
  19 + self.contentMd5 = @"";
  20 + self.contentType = @"";
  21 + self.kSYResource = [NSString stringWithFormat:@"/%@/?logging", self.bucket];
  22 + self.host = [NSString
  23 + stringWithFormat:@"%@://%@.%@/?logging",
  24 + [[KS3Client initialize] requestProtocol], self.bucket,
  25 + [[KS3Client initialize] getBucketDomain]];
  26 + }
  27 + return self;
  28 +}
  29 +- (KS3URLRequest *)configureURLRequest {
  30 + NSMutableString *queryString = [NSMutableString stringWithCapacity:512];
  31 +
  32 + if (nil != self.prefix) {
  33 + [queryString appendFormat:@"%@=%@", kKS3QueryParamPrefix,
  34 + [KS3SDKUtil urlEncode:self.prefix]];
  35 + }
  36 + if (nil != self.marker) {
  37 + if ([queryString length] > 0) {
  38 + [queryString appendFormat:@"&"];
  39 + }
  40 + [queryString appendFormat:@"%@=%@", kKS3QueryParamMarker,
  41 + [KS3SDKUtil urlEncode:self.marker]];
  42 + }
  43 + if (nil != self.delimiter) {
  44 + if ([queryString length] > 0) {
  45 + [queryString appendFormat:@"&"];
  46 + }
  47 + [queryString appendFormat:@"%@=%@", kKS3QueryParamDelimiter,
  48 + [KS3SDKUtil urlEncode:self.delimiter]];
  49 + }
  50 + if (self.maxKeys > 0) {
  51 + if ([queryString length] > 0) {
  52 + [queryString appendFormat:@"&"];
  53 + }
  54 + [queryString appendFormat:@"%@=%d", kKS3QueryParamMaxKeys, self.maxKeys];
  55 + }
  56 +
  57 + if ([queryString length] > 0) {
  58 + self.host = [NSString stringWithFormat:@"%@?%@", self.host, queryString];
  59 + }
  60 +
  61 + [super configureURLRequest];
  62 + return self.urlRequest;
  63 +}
  64 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.h 0 → 100644
  1 +//
  2 +// KSS3GetBucketLoggingResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3GetBucketLoggingResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.m 0 → 100644
  1 +//
  2 +// KSS3GetBucketLoggingResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetBucketLoggingResponse.h"
  10 +
  11 +@implementation KS3GetBucketLoggingResponse
  12 +- (void)processBody {
  13 +}
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.h 0 → 100644
  1 +//
  2 +// KSS3HeadBucketRequest.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +#import "KS3Request.h"
  9 +@interface KS3HeadBucketRequest : KS3Request
  10 +- (instancetype)initWithName:(NSString *)bucketName;
  11 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.m 0 → 100644
  1 +//
  2 +// KSS3HeadBucketRequest.m
  3 +// KS3YunSDK
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3HeadBucketRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3HeadBucketRequest
  13 +- (instancetype)initWithName:(NSString *)bucketName {
  14 + self = [super init];
  15 + if (self) {
  16 + self.bucket = [self URLEncodedString:bucketName];
  17 + self.httpMethod = kHttpMethodHead;
  18 + self.contentMd5 = @"";
  19 + self.contentType = @"";
  20 + self.kSYResource = [NSString stringWithFormat:@"/%@/", self.bucket];
  21 + self.host = [NSString
  22 + stringWithFormat:@"%@://%@.%@",
  23 + [[KS3Client initialize] requestProtocol], self.bucket,
  24 + [[KS3Client initialize] getBucketDomain]];
  25 + }
  26 + return self;
  27 +}
  28 +
  29 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.h 0 → 100644
  1 +//
  2 +// KSS3HeadBucketResponse.h
  3 +// KS3YunSDK
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3HeadBucketResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.m 0 → 100644
  1 +//
  2 +// KSS3HeadBucketResponse.m
  3 +// KS3YunSDK
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3HeadBucketResponse.h"
  10 +
  11 +@implementation KS3HeadBucketResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.h 0 → 100644
  1 +//
  2 +// KSS3ListObjectsRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3ListObjectsRequest : KS3Request
  12 +
  13 +@property(nonatomic, strong) NSString *prefix;
  14 +@property(nonatomic, strong) NSString *marker;
  15 +@property(nonatomic) int32_t maxKeys;
  16 +@property(nonatomic, retain) NSString *delimiter;
  17 +@property(nonatomic, strong) NSString *encodingType;
  18 +
  19 +- (instancetype)initWithName:(NSString *)bucketName;
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.m 0 → 100644
  1 +//
  2 +// KSS3ListObjectsRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListObjectsRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3SDKUtil.h"
  13 +@implementation KS3ListObjectsRequest
  14 +- (instancetype)initWithName:(NSString *)bucketName {
  15 + self = [super init];
  16 + if (self) {
  17 + self.bucket = [self URLEncodedString:bucketName];
  18 + self.httpMethod = kHttpMethodGet;
  19 + self.contentMd5 = @"";
  20 + self.contentType = @"";
  21 + self.kSYResource = [NSString stringWithFormat:@"/%@/", self.bucket];
  22 + self.host = [NSString
  23 + stringWithFormat:@"%@://%@.%@",
  24 + [[KS3Client initialize] requestProtocol], self.bucket,
  25 + [[KS3Client initialize] getBucketDomain]];
  26 + }
  27 + return self;
  28 +}
  29 +
  30 +- (KS3URLRequest *)configureURLRequest {
  31 + NSMutableString *queryString = [NSMutableString stringWithCapacity:512];
  32 + if (nil != self.prefix) {
  33 + [queryString appendFormat:@"%@=%@", kKS3QueryParamPrefix,
  34 + [KS3SDKUtil urlEncode:self.prefix]];
  35 + }
  36 + if (nil != self.marker) {
  37 + if ([queryString length] > 0) {
  38 + [queryString appendFormat:@"&"];
  39 + }
  40 + [queryString appendFormat:@"%@=%@", kKS3QueryParamMarker,
  41 + [KS3SDKUtil urlEncode:self.marker]];
  42 + }
  43 + if (nil != self.delimiter) {
  44 + if ([queryString length] > 0) {
  45 + [queryString appendFormat:@"&"];
  46 + }
  47 + [queryString appendFormat:@"%@=%@", kKS3QueryParamDelimiter,
  48 + [KS3SDKUtil urlEncode:self.delimiter]];
  49 + }
  50 + if (nil != self.encodingType) {
  51 + if (queryString.length > 0) {
  52 + [queryString appendFormat:@"&"];
  53 + }
  54 + [queryString appendFormat:@"%@=%@", kKS3QueryParamEncodingType,
  55 + [KS3SDKUtil urlEncode:self.encodingType]];
  56 + }
  57 + if (self.maxKeys > 0) {
  58 + if ([queryString length] > 0) {
  59 + [queryString appendFormat:@"&"];
  60 + }
  61 + [queryString appendFormat:@"%@=%d", kKS3QueryParamMaxKeys, self.maxKeys];
  62 + }
  63 + if ([queryString length] > 0) {
  64 + self.host = [NSString stringWithFormat:@"%@/?%@", self.host, queryString];
  65 + }
  66 + [super configureURLRequest];
  67 + return self.urlRequest;
  68 +}
  69 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.h 0 → 100644
  1 +//
  2 +// KSS3ListObjectsResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@class KS3ListObjectsResult;
  11 +
  12 +@interface KS3ListObjectsResponse : KS3Response
  13 +@property(nonatomic, strong) KS3ListObjectsResult *listBucketsResult;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.m 0 → 100644
  1 +//
  2 +// KSS3ListObjectsResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListObjectsResponse.h"
  10 +#import "KS3ListObjectsResult.h"
  11 +#import "KS3ListObjectsXMLPrarser.h"
  12 +#import "KS3ObjectSummary.h"
  13 +#import "KS3Owner.h"
  14 +@implementation KS3ListObjectsResponse
  15 +- (void)processBody {
  16 + KS3ListObjectsXMLPrarser *xmlParser = [[KS3ListObjectsXMLPrarser alloc] init];
  17 + [xmlParser kSS3XMLarse:body];
  18 + _listBucketsResult = xmlParser.listBuctkResult;
  19 +}
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.h 0 → 100644
  1 +//
  2 +// ListBucketObjects.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3ListObjectsResult : NSObject
  12 +
  13 +@property(strong, nonatomic) NSMutableArray *objectSummaries;
  14 +@property(strong, nonatomic) NSString *bucketName;
  15 +@property(strong, nonatomic) NSString *prefix;
  16 +@property(strong, nonatomic) NSString *marker;
  17 +@property(strong, nonatomic) NSString *NextMarker;
  18 +@property(nonatomic) int32_t maxKeys;
  19 +@property(strong, nonatomic) NSString *delimiter;
  20 +@property(assign, nonatomic) BOOL IsTruncated;
  21 +@property(strong, nonatomic) NSMutableArray *commonPrefixes;
  22 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.m 0 → 100644
  1 +//
  2 +// ListBucketObjects.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListObjectsResult.h"
  10 +
  11 +@implementation KS3ListObjectsResult
  12 +- (instancetype)init {
  13 + self = [super init];
  14 + if (self) {
  15 + _objectSummaries = [NSMutableArray new];
  16 + _commonPrefixes = [NSMutableArray new];
  17 + }
  18 + return self;
  19 +}
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.h 0 → 100644
  1 +//
  2 +// KSS3ListObjectsXMLPrarser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3ListObjectsResult;
  11 +@interface KS3ListObjectsXMLPrarser : NSObject <NSXMLParserDelegate>
  12 +@property(strong, nonatomic) KS3ListObjectsResult *listBuctkResult;
  13 +- (void)kSS3XMLarse:(NSData *)dataXml;
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.m 0 → 100644
  1 +//
  2 +// KSS3ListObjectsXMLPrarser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListObjectsXMLPrarser.h"
  10 +#import "KS3ListObjectsResult.h"
  11 +#import "KS3ObjectSummary.h"
  12 +#import "KS3Owner.h"
  13 +
  14 +@interface KS3ListObjectsXMLPrarser ()
  15 +
  16 +@property(strong, nonatomic) NSString *currentTag;
  17 +@property(strong, nonatomic) NSMutableString *currentText;
  18 +@property(strong, nonatomic) KS3ObjectSummary *objectSummary;
  19 +
  20 +@property(nonatomic) BOOL isContents;
  21 +@property(nonatomic) BOOL isOwner;
  22 +@property(nonatomic) BOOL isCommonPrefixes;
  23 +
  24 +@end
  25 +
  26 +@implementation KS3ListObjectsXMLPrarser
  27 +
  28 +- (void)kSS3XMLarse:(NSData *)dataXml {
  29 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  30 + [parser setDelegate:self];
  31 + [parser parse];
  32 +}
  33 +
  34 +#pragma mark - Xml delegate
  35 +
  36 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  37 + _listBuctkResult = [[KS3ListObjectsResult alloc] init];
  38 +}
  39 +
  40 +- (void)parser:(NSXMLParser *)parser
  41 + didStartElement:(NSString *)elementName
  42 + namespaceURI:(NSString *)namespaceURI
  43 + qualifiedName:(NSString *)qName
  44 + attributes:(NSDictionary *)attributeDict {
  45 + if (nil != _currentText) {
  46 + _currentText = nil;
  47 + }
  48 + _currentTag = elementName;
  49 +
  50 + if ([elementName isEqualToString:@"Contents"]) {
  51 + _isContents = YES;
  52 + _isCommonPrefixes = NO;
  53 + if (nil != _objectSummary) {
  54 + _objectSummary = nil;
  55 + }
  56 + _objectSummary = [KS3ObjectSummary new];
  57 + }
  58 + if ([elementName isEqualToString:@"Owner"]) {
  59 + if (nil != _objectSummary.owner) {
  60 + _objectSummary.owner = nil;
  61 + }
  62 + _objectSummary.owner = [KS3Owner new];
  63 + }
  64 + if ([elementName isEqualToString:@"CommonPrefixes"]) {
  65 + _isCommonPrefixes = YES;
  66 + _isContents = NO;
  67 + }
  68 +}
  69 +
  70 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  71 + if (nil == _currentText) {
  72 + _currentText = [[NSMutableString alloc] init];
  73 + }
  74 +
  75 + [_currentText appendString:string];
  76 +}
  77 +
  78 +- (void)parser:(NSXMLParser *)parser
  79 + didEndElement:(NSString *)elementName
  80 + namespaceURI:(NSString *)namespaceURI
  81 + qualifiedName:(NSString *)qName {
  82 +
  83 + if (_isContents) {
  84 + if ([elementName isEqualToString:@"Key"]) {
  85 + _objectSummary.Key = _currentText;
  86 + } else if ([elementName isEqualToString:@"LastModified"]) {
  87 + _objectSummary.LastModified = _currentText;
  88 + } else if ([elementName isEqualToString:@"ETag"]) {
  89 + _objectSummary.ETag = _currentText;
  90 +
  91 + } else if ([elementName isEqualToString:@"Size"]) {
  92 + _objectSummary.size = (int32_t)[_currentText integerValue];
  93 +
  94 + } else if ([elementName isEqualToString:@"ID"]) {
  95 + _objectSummary.owner.ID = _currentText;
  96 +
  97 + } else if ([elementName isEqualToString:@"DisplayName"]) {
  98 + _objectSummary.owner.displayName = _currentText;
  99 +
  100 + } else if ([elementName isEqualToString:@"StorageClass"]) {
  101 + _objectSummary.storageClass = _currentText;
  102 + } else if ([elementName isEqualToString:@"Contents"]) {
  103 + [_listBuctkResult.objectSummaries addObject:_objectSummary];
  104 + _isContents = NO;
  105 + }
  106 + } else if (_isCommonPrefixes) {
  107 + if ([elementName isEqualToString:@"Prefix"]) {
  108 + [_listBuctkResult.commonPrefixes addObject:_currentText];
  109 + } else if ([elementName isEqualToString:@"CommonPrefixes"]) {
  110 + _isCommonPrefixes = NO;
  111 + }
  112 +
  113 + } else {
  114 + if ([elementName isEqualToString:@"Name"]) {
  115 + _listBuctkResult.bucketName = _currentText;
  116 + } else if ([elementName isEqualToString:@"Marker"]) {
  117 + _listBuctkResult.marker = _currentText;
  118 + } else if ([elementName isEqualToString:@"NextMarker"]) {
  119 + _listBuctkResult.NextMarker = _currentText;
  120 + } else if ([elementName isEqualToString:@"MaxKeys"]) {
  121 + _listBuctkResult.maxKeys = (int32_t)[_currentText integerValue];
  122 + } else if ([elementName isEqualToString:@"Delimiter"]) {
  123 + _listBuctkResult.delimiter = _currentText;
  124 + } else if ([elementName isEqualToString:@"IsTruncated"]) {
  125 + _listBuctkResult.IsTruncated = [_currentText boolValue];
  126 + }
  127 + }
  128 +}
  129 +
  130 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  131 +}
  132 +
  133 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  134 +}
  135 +
  136 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.h 0 → 100644
  1 +//
  2 +// KSS3Contents.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/13/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3Owner;
  11 +@interface KS3ObjectSummary : NSObject
  12 +@property(strong, nonatomic) NSString *Key;
  13 +@property(strong, nonatomic) NSString *LastModified;
  14 +@property(strong, nonatomic) NSString *ETag;
  15 +@property(strong, nonatomic) KS3Owner *owner;
  16 +@property(assign, nonatomic) int32_t size;
  17 +@property(strong, nonatomic) NSString *storageClass;
  18 +
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.m 0 → 100644
  1 +//
  2 +// KSS3Contents.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/13/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ObjectSummary.h"
  10 +
  11 +@implementation KS3ObjectSummary
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3SetACLRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@class KS3AccessControlList;
  12 +@interface KS3SetACLRequest : KS3Request
  13 +
  14 +@property(strong, nonatomic) KS3AccessControlList *acl;
  15 +
  16 +- (instancetype)initWithName:(NSString *)bucketName
  17 + accessACL:(KS3AccessControlList *)accessACL;
  18 +
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3SetACLRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetACLRequest.h"
  10 +#import "KS3AccessControlList.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +@implementation KS3SetACLRequest
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName
  16 + accessACL:(KS3AccessControlList *)accessACL {
  17 + self = [super init];
  18 + if (self) {
  19 + self.bucket = [self URLEncodedString:bucketName];
  20 + self.httpMethod = kHttpMethodPut;
  21 + self.contentMd5 = @"";
  22 + self.contentType = @"";
  23 + self.kSYResource = [NSString stringWithFormat:@"/%@/?acl", self.bucket];
  24 + self.host = [NSString
  25 + stringWithFormat:@"%@://%@.%@/?acl",
  26 + [[KS3Client initialize] requestProtocol], self.bucket,
  27 + [[KS3Client initialize] getBucketDomain]];
  28 + _acl = accessACL;
  29 + }
  30 + return self;
  31 +}
  32 +
  33 +- (KS3URLRequest *)configureURLRequest {
  34 +
  35 + [super configureURLRequest];
  36 + [self.urlRequest setValue:_acl.accessACL forHTTPHeaderField:@"x-kss-acl"];
  37 + return self.urlRequest;
  38 +}
  39 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3SetACLResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +#import "KS3Response.h"
  9 +@interface KS3SetACLResponse : KS3Response
  10 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3SetACLResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetACLResponse.h"
  10 +
  11 +@implementation KS3SetACLResponse
  12 +- (void)processBody {
  13 +}
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.h 0 → 100644
  1 +//
  2 +// KSS3SetBucketLoggingRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3SetBucketLoggingRequest : KS3Request
  12 +
  13 +- (instancetype)initWithName:(NSString *)bucketName;
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.m 0 → 100644
  1 +//
  2 +// KSS3SetBucketLoggingRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetBucketLoggingRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3SetBucketLoggingRequest
  13 +- (instancetype)initWithName:(NSString *)bucketName {
  14 + self = [super init];
  15 + if (self) {
  16 + self.bucket = [self URLEncodedString:bucketName];
  17 + self.httpMethod = kHttpMethodPut;
  18 + self.contentMd5 = @"";
  19 + self.contentType = @"";
  20 + self.kSYResource = [NSString stringWithFormat:@"/%@/?logging", self.bucket];
  21 + self.host = [NSString
  22 + stringWithFormat:@"%@://%@.%@/?logging",
  23 + [[KS3Client initialize] requestProtocol], self.bucket,
  24 + [[KS3Client initialize] getBucketDomain]];
  25 + }
  26 + return self;
  27 +}
  28 +- (KS3URLRequest *)configureURLRequest {
  29 + NSString *strBody = @"<BucketLoggingStatus "
  30 + @"xmlns=\"http://doc.s3.amazonaws.com/2006-03-01\" />";
  31 + [self.urlRequest
  32 + setHTTPBody:[strBody dataUsingEncoding:NSUTF8StringEncoding]];
  33 +
  34 + [super configureURLRequest];
  35 + return self.urlRequest;
  36 +}
  37 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.h 0 → 100644
  1 +//
  2 +// KSS3SetBucketLoggingResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3SetBucketLoggingResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.m 0 → 100644
  1 +//
  2 +// KSS3SetBucketLoggingResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetBucketLoggingResponse.h"
  10 +
  11 +@implementation KS3SetBucketLoggingResponse
  12 +- (void)processBody {
  13 +}
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3SetGrantACLRequest.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@class KS3GrantAccessControlList;
  12 +
  13 +@interface KS3SetGrantACLRequest : KS3Request
  14 +
  15 +@property(nonatomic, strong) KS3GrantAccessControlList *acl;
  16 +
  17 +- (instancetype)initWithName:(NSString *)bucketName
  18 + accessACL:(KS3GrantAccessControlList *)accessACL;
  19 +
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3SetGrantACLRequest.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetGrantACLRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3GrantAccessControlList.h"
  13 +@implementation KS3SetGrantACLRequest
  14 +- (instancetype)initWithName:(NSString *)bucketName
  15 + accessACL:(KS3GrantAccessControlList *)accessACL {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.httpMethod = kHttpMethodPut;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.kSYResource = [NSString stringWithFormat:@"/%@/?acl", self.bucket];
  23 + self.host = [NSString
  24 + stringWithFormat:@"%@://%@.%@/?acl",
  25 + [[KS3Client initialize] requestProtocol], self.bucket,
  26 + [[KS3Client initialize] getBucketDomain]];
  27 +
  28 + if (accessACL) {
  29 + _acl = accessACL;
  30 + NSString *strValue =
  31 + [NSString stringWithFormat:@"id=\"%@\", ", _acl.identifier];
  32 + strValue = [strValue
  33 + stringByAppendingFormat:@"displayName=\"%@\"", _acl.displayName];
  34 + [self.urlRequest setValue:strValue
  35 + forHTTPHeaderField:_acl.accessGrantACL];
  36 + }
  37 + }
  38 + return self;
  39 +}
  40 +
  41 +- (KS3URLRequest *)configureURLRequest {
  42 + [super configureURLRequest];
  43 + return self.urlRequest;
  44 +}
  45 +
  46 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3SetGrantACLResponse.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3SetGrantACLResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3SetGrantACLResponse.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetGrantACLResponse.h"
  10 +
  11 +@implementation KS3SetGrantACLResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.h 0 → 100644
  1 +//
  2 +// KSS3AccessControlList.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +typedef NS_ENUM(NSInteger, KingSoftYun_PermissionACLType) {
  12 + KingSoftYun_Permission_Private,
  13 + KingSoftYun_Permission_Public_Read,
  14 + KingSoftYun_Permission_Public_Read_Write,
  15 + KingSoftYun_Permission_Authenticated_Read,
  16 +
  17 +};
  18 +
  19 +@interface KS3AccessControlList : NSObject
  20 +@property(strong, nonatomic) NSString *accessACL;
  21 +
  22 +- (NSString *)setContronAccess:(KingSoftYun_PermissionACLType)aclType;
  23 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.m 0 → 100644
  1 +//
  2 +// KSS3AccessControlList.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AccessControlList.h"
  10 +
  11 +@implementation KS3AccessControlList
  12 +
  13 +- (instancetype)init {
  14 + self = [super init];
  15 + if (self) {
  16 + _accessACL = @"";
  17 + }
  18 + return self;
  19 +}
  20 +- (NSString *)setContronAccess:(KingSoftYun_PermissionACLType)aclType {
  21 + _accessACL = @"";
  22 + switch (aclType) {
  23 + case KingSoftYun_Permission_Private:
  24 + _accessACL = @"private";
  25 + break;
  26 + case KingSoftYun_Permission_Public_Read:
  27 + _accessACL = @"public-read";
  28 + break;
  29 + case KingSoftYun_Permission_Public_Read_Write:
  30 + _accessACL = @"public-read-write";
  31 + break;
  32 + case KingSoftYun_Permission_Authenticated_Read:
  33 + _accessACL = @"authenticated-read";
  34 + break;
  35 + default:
  36 + break;
  37 + }
  38 + return _accessACL;
  39 +}
  40 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.h 0 → 100644
  1 +//
  2 +// KSS3Grant.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3Grantee;
  11 +@interface KS3Grant : NSObject
  12 +@property(strong, nonatomic) NSString *permission;
  13 +@property(strong, nonatomic) KS3Grantee *grantee;
  14 +
  15 +@end
  16 +
  17 +@interface KS3Grantee : NSObject
  18 +@property(strong, nonatomic) NSString *ID;
  19 +@property(strong, nonatomic) NSString *displayName;
  20 +@property(strong, nonatomic) NSString *URI;
  21 +
  22 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.m 0 → 100644
  1 +//
  2 +// KSS3Grant.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/12/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Grant.h"
  10 +
  11 +@implementation KS3Grant
  12 +
  13 +@end
  14 +
  15 +@implementation KS3Grantee
  16 +
  17 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.h 0 → 100644
  1 +//
  2 +// KSS3GrantAccessControlList.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +typedef enum {
  12 + KingSoftYun_Grant_Permission_Read,
  13 + KingSoftYun_Grant_Permission_Write,
  14 + KingSoftYun_Grant_Permission_Read_ACP,
  15 + KingSoftYun_Grant_Permission_Write_ACP,
  16 + KingSoftYun_Grant_Permission_Full_Control,
  17 +} KingSoftYun_GrantPermissionACLType;
  18 +
  19 +@interface KS3GrantAccessControlList : NSObject
  20 +
  21 +@property(nonatomic, strong) NSString *accessGrantACL;
  22 +@property(nonatomic, strong) NSString *identifier;
  23 +@property(nonatomic, strong) NSString *displayName;
  24 +
  25 +- (NSString *)setGrantControlAccess:
  26 + (KingSoftYun_GrantPermissionACLType)grantAclType;
  27 +
  28 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.m 0 → 100644
  1 +//
  2 +// KSS3GrantAccessControlList.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GrantAccessControlList.h"
  10 +
  11 +@implementation KS3GrantAccessControlList
  12 +
  13 +- (instancetype)init {
  14 + self = [super init];
  15 + if (self) {
  16 + _accessGrantACL = @"";
  17 + }
  18 + return self;
  19 +}
  20 +
  21 +- (NSString *)setGrantControlAccess:
  22 + (KingSoftYun_GrantPermissionACLType)grantAclType {
  23 + _accessGrantACL = @"";
  24 + switch (grantAclType) {
  25 + case KingSoftYun_Grant_Permission_Read:
  26 + _accessGrantACL = @"x-kss-grant-read";
  27 + break;
  28 + case KingSoftYun_Grant_Permission_Write:
  29 + _accessGrantACL = @"x-kss-grant-write";
  30 + break;
  31 + case KingSoftYun_Grant_Permission_Read_ACP:
  32 + _accessGrantACL = @"x-kss-grant-read-acp";
  33 + break;
  34 + case KingSoftYun_Grant_Permission_Write_ACP:
  35 + _accessGrantACL = @"x-kss-grant-write-acp";
  36 + break;
  37 + case KingSoftYun_Grant_Permission_Full_Control:
  38 + _accessGrantACL = @"x-kss-grant-full-control";
  39 + break;
  40 + default:
  41 + break;
  42 + }
  43 + return _accessGrantACL;
  44 +}
  45 +
  46 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.h 0 → 100644
  1 +//
  2 +// S3Owner.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3Owner : NSObject
  12 +
  13 +@property(strong, nonatomic) NSString *ID;
  14 +
  15 +@property(strong, nonatomic) NSString *displayName;
  16 +
  17 +- (id)initWithID:(NSString *)theID withDisplayName:(NSString *)theDisplayName;
  18 +
  19 ++ (id)ownerWithID:(NSString *)theID withDisplayName:(NSString *)theDisplayName;
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.m 0 → 100644
  1 +//
  2 +// S3Owner.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Owner.h"
  10 +
  11 +@implementation KS3Owner
  12 +
  13 +- (id)initWithID:(NSString *)theID withDisplayName:(NSString *)theDisplayName {
  14 + self = [super init];
  15 + if (self) {
  16 + _ID = theID;
  17 + _displayName = theDisplayName;
  18 + }
  19 + return self;
  20 +}
  21 +
  22 ++ (id)ownerWithID:(NSString *)theID withDisplayName:(NSString *)theDisplayName {
  23 + return [[self alloc] initWithID:theID withDisplayName:theDisplayName];
  24 +}
  25 +
  26 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.h 0 → 100644
  1 +//
  2 +// KSS3ResponseHeaderOverrides.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3ResponseHeaderOverrides : NSObject
  12 +
  13 +@property(nonatomic, strong) NSString *contentType;
  14 +
  15 +@property(nonatomic, strong) NSString *contentLanguage;
  16 +
  17 +@property(nonatomic, strong) NSString *expires;
  18 +
  19 +@property(nonatomic, strong) NSString *cacheControl;
  20 +
  21 +@property(nonatomic, strong) NSString *contentDisposition;
  22 +
  23 +@property(nonatomic, strong) NSString *contentEncoding;
  24 +
  25 +@property(nonatomic, assign) NSString *queryString;
  26 +
  27 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.m 0 → 100644
  1 +//
  2 +// KSS3ResponseHeaderOverrides.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ResponseHeaderOverrides.h"
  10 +
  11 +@implementation KS3ResponseHeaderOverrides
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.h 0 → 100644
  1 +//
  2 +// KSS3AbortMultipartUploadRequest.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3Request.h"
  11 +
  12 +@interface KS3AbortMultipartUploadRequest : KS3Request
  13 +
  14 +@property(strong, nonatomic) NSString *key;
  15 +@property(strong, nonatomic) NSString *uploadId;
  16 +
  17 +- (instancetype)initWithName:(NSString *)bucketName;
  18 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload;
  19 +
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.m 0 → 100644
  1 +//
  2 +// KSS3AbortMultipartUploadRequest.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbortMultipartUploadRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3AbortMultipartUploadRequest
  13 +
  14 +- (instancetype)initWithName:(NSString *)bucketName {
  15 + self = [super init];
  16 + if (self) {
  17 + self.bucket = [self URLEncodedString:bucketName];
  18 + self.httpMethod = kHttpMethodDelete;
  19 + self.contentMd5 = @"";
  20 + self.contentType = @"";
  21 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  22 + self.host = [NSString
  23 + stringWithFormat:@"%@://%@.%@/",
  24 + [[KS3Client initialize] requestProtocol], self.bucket,
  25 + [[KS3Client initialize] getBucketDomain]];
  26 + }
  27 + return self;
  28 +}
  29 +
  30 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload {
  31 + if (self = [super init]) {
  32 + self.bucket = [self URLEncodedString:multipartUpload.bucket];
  33 + self.key = [self URLEncodedString:multipartUpload.key];
  34 + self.uploadId = multipartUpload.uploadId;
  35 +
  36 + self.httpMethod = kHttpMethodDelete;
  37 + self.contentMd5 = @"";
  38 + self.contentType = @"";
  39 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  40 + self.host = [NSString
  41 + stringWithFormat:@"%@://%@.%@",
  42 + [[KS3Client initialize] requestProtocol], self.bucket,
  43 + [[KS3Client initialize] getBucketDomain]];
  44 + [multipartUpload cancel];
  45 + }
  46 +
  47 + return self;
  48 +}
  49 +
  50 +- (void)setCompleteRequest {
  51 + self.kSYResource =
  52 + [NSString stringWithFormat:@"%@/%@?uploadId=%@", self.kSYResource, _key,
  53 + self.uploadId];
  54 +}
  55 +- (KS3URLRequest *)configureURLRequest {
  56 +
  57 + self.host = [NSString
  58 + stringWithFormat:@"%@/%@?uploadId=%@", self.host, _key, _uploadId];
  59 + [super configureURLRequest];
  60 + return self.urlRequest;
  61 +}
  62 +
  63 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.h 0 → 100644
  1 +//
  2 +// KSS3AbortMultipartUploadResponse.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@interface KS3AbortMultipartUploadResponse : KS3Response
  11 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.m 0 → 100644
  1 +//
  2 +// KSS3AbortMultipartUploadResponse.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbortMultipartUploadResponse.h"
  10 +
  11 +@implementation KS3AbortMultipartUploadResponse
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.h 0 → 100644
  1 +//
  2 +// KS3BucketObj.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 15/4/15.
  6 +// Copyright (c) 2015年 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3BucketObject : NSObject
  12 +@property(strong, nonatomic) NSString *bucketName;
  13 +@property(strong, nonatomic) NSString *objKey;
  14 +
  15 +- (instancetype)initWithBucketName:(NSString *)strBucketName
  16 + keyName:(NSString *)strKeyName;
  17 +
  18 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.m 0 → 100644
  1 +//
  2 +// KS3BucketObj.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 15/4/15.
  6 +// Copyright (c) 2015年 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketObject.h"
  10 +
  11 +@implementation KS3BucketObject
  12 +
  13 +- (instancetype)initWithBucketName:(NSString *)strBucketName
  14 + keyName:(NSString *)strKeyName {
  15 + self = [super init];
  16 + if (self) {
  17 + _bucketName = strBucketName;
  18 + _objKey = strKeyName;
  19 + }
  20 + return self;
  21 +}
  22 +
  23 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.h 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3Request.h"
  11 +
  12 +@interface KS3CompleteMultipartUploadRequest : KS3Request
  13 +
  14 +@property(nonatomic, strong) NSString *key;
  15 +@property(nonatomic, strong) NSString *uploadId;
  16 +@property(nonatomic, strong) NSData *dataParts;
  17 +@property(nonatomic, strong) NSString *callbackUrl;
  18 +@property(nonatomic, strong) NSString *callbackBody;
  19 +@property(nonatomic, strong) NSDictionary *callbackParams;
  20 +
  21 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload;
  22 +
  23 +- (void)addPartWithPartNumber:(int)partNumber withETag:(NSString *)etag;
  24 +
  25 +- (NSData *)requestBody;
  26 +
  27 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.m 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CompleteMultipartUploadRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@interface KS3CompleteMultipartUploadRequest ()
  13 +@property(strong, nonatomic) NSMutableDictionary *parts;
  14 +@end
  15 +
  16 +@implementation KS3CompleteMultipartUploadRequest
  17 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload {
  18 + if (self = [super init]) {
  19 + self.bucket = [self URLEncodedString:multipartUpload.bucket];
  20 + self.key = [self URLEncodedString:multipartUpload.key];
  21 + self.uploadId = multipartUpload.uploadId;
  22 + self.contentMd5 = @"";
  23 + self.contentType = @"text/xml";
  24 + self.httpMethod = kHttpMethodPost;
  25 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  26 + }
  27 + return self;
  28 +}
  29 +
  30 +- (void)setCompleteRequest {
  31 + // **** 一定要先设置callbackbody,再设置callbackurl才可以签名成功
  32 + if (nil != _callbackBody && nil != _callbackUrl) {
  33 + [self.urlRequest setValue:_callbackBody
  34 + forHTTPHeaderField:@"x-kss-callbackbody"];
  35 +
  36 + [self.urlRequest setValue:_callbackUrl
  37 + forHTTPHeaderField:@"x-kss-callbackurl"];
  38 +
  39 + // **** 回调的自定义参数
  40 + if (nil != _callbackParams) {
  41 + for (NSString *strKey in _callbackParams.allKeys) {
  42 + if (strKey.length >= 4 &&
  43 + [[strKey substringToIndex:4] isEqualToString:@"kss-"] == YES) {
  44 + [self.urlRequest setValue:_callbackParams[strKey]
  45 + forHTTPHeaderField:strKey];
  46 + } else {
  47 + NSLog(@"The header with field: \"%@\" and value: \"%@\" is not "
  48 + @"correct, this header will be ingored",
  49 + strKey, _callbackParams[strKey]);
  50 + }
  51 + }
  52 + }
  53 + }
  54 +
  55 + [self setKSYResource:[NSString stringWithFormat:@"%@/%@?%@=%@",
  56 + self.kSYResource, _key,
  57 + kKS3QueryParamUploadId,
  58 + self.uploadId]];
  59 +
  60 + KS3Client *ks3Client = [KS3Client initialize];
  61 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  62 + if (customBucketDomain != nil) {
  63 + self.host =
  64 + [NSString stringWithFormat:@"%@://%@/%@?uploadId=%@",
  65 + [[KS3Client initialize] requestProtocol],
  66 + customBucketDomain, self.key, self.uploadId];
  67 + } else {
  68 + self.host = [NSString
  69 + stringWithFormat:@"%@://%@.%@/%@?uploadId=%@",
  70 + [[KS3Client initialize] requestProtocol], self.bucket,
  71 + [ks3Client getBucketDomain], self.key, self.uploadId];
  72 + }
  73 +}
  74 +
  75 +- (NSURLRequest *)configureURLRequest {
  76 + [super configureURLRequest];
  77 + [self.urlRequest setHTTPMethod:kHttpMethodPost];
  78 + [self.urlRequest setHTTPBody:[self requestBody]];
  79 + [self.urlRequest setValue:[NSString
  80 + stringWithFormat:@"%lu",
  81 + (unsigned long)[
  82 + [self.urlRequest HTTPBody]
  83 + length]]
  84 + forHTTPHeaderField:kKSHttpHdrContentLength];
  85 + [self.urlRequest setValue:@"text/xml"
  86 + forHTTPHeaderField:kKSHttpHdrContentType];
  87 + return self.urlRequest;
  88 +}
  89 +
  90 +- (void)addPartWithPartNumber:(int)partNumber withETag:(NSString *)etag {
  91 + if (_parts == nil) {
  92 + _parts = [NSMutableDictionary new];
  93 + }
  94 + [_parts setObject:etag forKey:[NSNumber numberWithInt:partNumber]];
  95 +}
  96 +- (NSData *)requestBody {
  97 + NSMutableString *xml =
  98 + [NSMutableString stringWithFormat:@"<CompleteMultipartUpload>"];
  99 + NSComparator comparePartNumbers = ^(id part1, id part2) {
  100 + return [part1 compare:part2];
  101 + };
  102 + NSArray *keys =
  103 + [[self.parts allKeys] sortedArrayUsingComparator:comparePartNumbers];
  104 + for (NSNumber *partNumber in keys) {
  105 + [xml
  106 + appendFormat:@"<Part><PartNumber>%d</PartNumber><ETag>%@</ETag></Part>",
  107 + [partNumber intValue],
  108 + [self.parts objectForKey:partNumber]];
  109 + }
  110 + [xml appendString:@"</CompleteMultipartUpload>"];
  111 + return [xml dataUsingEncoding:NSUTF8StringEncoding];
  112 +}
  113 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.h 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CompleteMultipartUploadResult.h"
  10 +#import "KS3Response.h"
  11 +
  12 +@interface KS3CompleteMultipartUploadResponse : KS3Response
  13 +@property(nonatomic, readonly)
  14 + KS3CompleteMultipartUploadResult *completeMultipartUploadResult;
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.m 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CompleteMultipartUploadResponse.h"
  10 +
  11 +@implementation KS3CompleteMultipartUploadResponse
  12 +- (void)processBody {
  13 +
  14 + NSLog(@"KSS3CompleteMultipartUploadResponse %d", self.httpStatusCode);
  15 +}
  16 +
  17 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.h 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadResult.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3CompleteMultipartUploadResult : NSObject
  12 +
  13 +@property(nonatomic, strong) NSString *location;
  14 +
  15 +@property(nonatomic, strong) NSString *bucket;
  16 +
  17 +@property(nonatomic, strong) NSString *key;
  18 +
  19 +@property(nonatomic, strong) NSString *etag;
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.m 0 → 100644
  1 +//
  2 +// KSS3CompleteMultipartUploadResult.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3CompleteMultipartUploadResult.h"
  10 +
  11 +@implementation KS3CompleteMultipartUploadResult
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.h 0 → 100644
  1 +//
  2 +// KSS3DeleteObjectRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3DeleteObjectRequest : KS3Request
  12 +
  13 +@property(nonatomic, strong) NSString *key;
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName
  16 + withKeyName:(NSString *)strKey;
  17 +
  18 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.m 0 → 100644
  1 +//
  2 +// KSS3DeleteObjectRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3DeleteObjectRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3DeleteObjectRequest
  13 +- (instancetype)initWithName:(NSString *)bucketName
  14 + withKeyName:(NSString *)strKey {
  15 + self = [super init];
  16 + if (self) {
  17 + self.bucket = [self URLEncodedString:bucketName];
  18 + self.key = [self URLEncodedString:strKey];
  19 + self.httpMethod = kHttpMethodDelete;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  23 + self.host = [NSString
  24 + stringWithFormat:@"%@://%@.%@",
  25 + [[KS3Client initialize] requestProtocol], self.bucket,
  26 + [[KS3Client initialize] getBucketDomain]];
  27 +
  28 + //
  29 + self.kSYResource =
  30 + [NSString stringWithFormat:@"%@/%@", self.kSYResource, _key];
  31 + self.host = [NSString stringWithFormat:@"%@/%@", self.host, _key];
  32 + }
  33 + return self;
  34 +}
  35 +- (KS3URLRequest *)configureURLRequest {
  36 + [super configureURLRequest];
  37 + return self.urlRequest;
  38 +}
  39 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.h 0 → 100644
  1 +//
  2 +// KSS3DeleteObjectResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3DeleteObjectResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.m 0 → 100644
  1 +//
  2 +// KSS3DeleteObjectResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3DeleteObjectResponse.h"
  10 +
  11 +@implementation KS3DeleteObjectResponse
  12 +- (void)processBody {
  13 +}
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.h 0 → 100644
  1 +//
  2 +// MSDownLoad.h
  3 +// MusicSample
  4 +//
  5 +// Created by JackWong on 14-1-9.
  6 +// Copyright (c) 2014年 JackWong. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Client.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@class KS3Credentials;
  13 +
  14 +@protocol KS3DownloadDelegate;
  15 +@interface KS3DownLoad : NSObject {
  16 +
  17 + BOOL _isFinished;
  18 + BOOL _isStop;
  19 + BOOL overwrite;
  20 + NSString *url;
  21 + NSString *fileName;
  22 + NSString *filePath;
  23 + unsigned long long fileSize;
  24 +@private
  25 + NSString *destinationPath;
  26 + NSString *temporaryPath;
  27 + NSFileHandle *fileHandle;
  28 + NSURLConnection *connection;
  29 + unsigned long long offset;
  30 +}
  31 +- (id)initWithUrl:(NSString *)aUrl
  32 + credentials:(KS3Credentials *)
  33 + credentials:(NSString *)
  34 + bucketName:(NSString *)objectKey;
  35 +
  36 +@property(nonatomic, weak) id<KS3DownloadDelegate> delegate;
  37 +
  38 +@property(strong, nonatomic) NSString *bucketName;
  39 +
  40 +@property(strong, nonatomic) NSString *key;
  41 +
  42 +@property(nonatomic, assign) BOOL overwrite;
  43 +
  44 +@property(nonatomic, strong) NSString *url;
  45 +
  46 +@property(nonatomic, strong) NSString *fileName;
  47 +
  48 +@property(nonatomic, strong) NSString *filePath;
  49 +
  50 +@property(strong, nonatomic) NSString *httpMethod;
  51 +
  52 +@property(strong, nonatomic) NSString *contentMd5;
  53 +
  54 +@property(strong, nonatomic) NSString *contentType;
  55 +
  56 +@property(strong, nonatomic) NSString *kSYHeader;
  57 +
  58 +@property(strong, nonatomic) NSString *kSYResource;
  59 +
  60 +@property(nonatomic, strong) NSString *strKS3Token;
  61 +
  62 +@property(strong, nonatomic) NSDate *requestDate;
  63 +
  64 +@property(strong, nonatomic) NSString *strDate;
  65 +
  66 +@property NSTimeInterval timeoutInterval;
  67 +
  68 +@property(nonatomic, readonly) unsigned long long fileSize;
  69 +
  70 +@property(copy, nonatomic)
  71 + KSS3DownloadProgressChangeBlock downloadProgressChangeBlock;
  72 +
  73 +@property(copy, nonatomic) KSS3DownloadFailedBlock failedBlock;
  74 +
  75 +@property(copy, nonatomic)
  76 + kSS3DownloadFileCompleteionBlock downloadFileCompleteionBlock;
  77 +
  78 +@property(copy, nonatomic) KSS3DownloadBeginBlock downloadBeginBlock;
  79 +
  80 +- (void)start;
  81 +
  82 +- (void)stop;
  83 +
  84 +- (void)stopAndClear;
  85 +
  86 +- (void)setStrKS3Token:(NSString *)ks3Token;
  87 +
  88 +@end
  89 +
  90 +@protocol KS3DownloadDelegate <NSObject>
  91 +
  92 +- (void)downloadBegin:(KS3DownLoad *)aDownload
  93 + didReceiveResponseHeaders:(NSURLResponse *)responseHeaders;
  94 +
  95 +- (void)downloadFaild:(KS3DownLoad *)aDownload
  96 + didFailWithError:(NSError *)error;
  97 +
  98 +- (void)downloadFinished:(KS3DownLoad *)aDownload filePath:(NSString *)filePath;
  99 +
  100 +- (void)downloadProgressChange:(KS3DownLoad *)aDownload
  101 + progress:(double)newProgress;
  102 +
  103 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.m 0 → 100644
  1 +//
  2 +// MSDownLoad.m
  3 +// MusicSample
  4 +//
  5 +// Created by JackWong on 14-1-9.
  6 +// Copyright (c) 2014年 JackWong. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3DownLoad.h"
  10 +#import "KS3AuthUtils.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +#import "KS3Credentials.h"
  14 +#import "KS3Request.h"
  15 +#import "KS3Response.h"
  16 +#import "KS3SDKUtil.h"
  17 +@interface KS3DownLoad ()
  18 +
  19 +@property(strong, nonatomic) KS3Credentials *credentials;
  20 +@end
  21 +
  22 +@implementation KS3DownLoad {
  23 +}
  24 +
  25 +@synthesize delegate;
  26 +@synthesize overwrite;
  27 +@synthesize url;
  28 +@synthesize fileName;
  29 +@synthesize filePath;
  30 +@synthesize fileSize;
  31 +
  32 +- (id)initWithUrl:(NSString *)aUrl
  33 + credentials:(KS3Credentials *)
  34 + credentials:(NSString *)
  35 + bucketName:(NSString *)objectKey {
  36 + self = [super init];
  37 + if (self) {
  38 + _credentials = credentials;
  39 + url = aUrl;
  40 + _requestDate = getCurrentDate();
  41 + _strDate = [KS3AuthUtils strDateWithDate:_requestDate andType:@"GMT"];
  42 + _contentMd5 = @"";
  43 + _contentType = @"";
  44 + _kSYHeader = @"";
  45 + _kSYResource = @"";
  46 + _strKS3Token = nil;
  47 + _httpMethod = kHttpMethodGet;
  48 + _bucketName = [self URLEncodedString:bucketName];
  49 + _key = [self URLEncodedString:objectKey];
  50 + _kSYResource = [NSString stringWithFormat:@"/%@/%@", _bucketName, _key];
  51 + }
  52 + return self;
  53 +}
  54 +
  55 +- (NSString *)URLEncodedString:(NSString *)str {
  56 +
  57 + NSMutableString *output = [NSMutableString string];
  58 +
  59 + const unsigned char *source = (const unsigned char *)[str UTF8String];
  60 +
  61 + int sourceLen = (int)strlen((const char *)source);
  62 +
  63 + for (int i = 0; i < sourceLen; ++i) {
  64 +
  65 + const unsigned char thisChar = source[i];
  66 +
  67 + if (thisChar == ' ') {
  68 +
  69 + [output appendString:@"+"];
  70 +
  71 + } else if (thisChar == '.' || thisChar == '-' || thisChar == '_' ||
  72 + thisChar == '~' ||
  73 +
  74 + (thisChar >= 'a' && thisChar <= 'z') ||
  75 +
  76 + (thisChar >= 'A' && thisChar <= 'Z') ||
  77 +
  78 + (thisChar >= '0' && thisChar <= '9')) {
  79 +
  80 + [output appendFormat:@"%c", thisChar];
  81 +
  82 + } else {
  83 +
  84 + [output appendFormat:@"%%%02X", thisChar];
  85 + }
  86 + }
  87 +
  88 + return output;
  89 +}
  90 +
  91 +- (NSString *)applicationDocumentFilePath {
  92 + NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(
  93 + NSDocumentDirectory, NSUserDomainMask, YES);
  94 + NSString *documentsDir = [documentPaths objectAtIndex:0];
  95 + return documentsDir;
  96 +}
  97 +- (void)start {
  98 + if (!url) {
  99 + if (delegate && [delegate respondsToSelector:@selector(downloadFaild:
  100 + didFailWithError:)]) {
  101 + NSError *error = [NSError errorWithDomain:@"Url can not be nil!"
  102 + code:110
  103 + userInfo:nil];
  104 + [delegate downloadFaild:self didFailWithError:error];
  105 + }
  106 + }
  107 + fileName = [url lastPathComponent];
  108 + // if (!fileName)
  109 + // {
  110 + // NSString *urlStr = [url absoluteString];
  111 + // fileName = [urlStr lastPathComponent];
  112 + // if ([fileName length] > 32) fileName = [fileName
  113 + // substringFromIndex:[fileName length]-32];
  114 + // }
  115 + _isStop = NO;
  116 + NSString *deletingPathExtension = [url MD5Hash];
  117 +
  118 + NSString *pathExtension = [url pathExtension];
  119 +
  120 + if (!filePath) {
  121 + NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(
  122 + NSDocumentDirectory, NSUserDomainMask, YES);
  123 + NSString *documentsDir = [documentPaths objectAtIndex:0];
  124 + filePath = documentsDir;
  125 + }
  126 + destinationPath = [filePath
  127 + stringByAppendingPathComponent:[NSString
  128 + stringWithFormat:@"%@.%@",
  129 + deletingPathExtension,
  130 + pathExtension]];
  131 +
  132 + temporaryPath =
  133 + [filePath stringByAppendingPathComponent:deletingPathExtension];
  134 +
  135 + if ([[NSFileManager defaultManager] fileExistsAtPath:destinationPath]) {
  136 + if (overwrite) {
  137 + [[NSFileManager defaultManager] removeItemAtPath:destinationPath
  138 + error:nil];
  139 + } else {
  140 + NSLog(@"本地已存在");
  141 + if (delegate &&
  142 + [delegate
  143 + respondsToSelector:@selector(downloadProgressChange:progress:)]) {
  144 + [delegate downloadProgressChange:self progress:1.0];
  145 + }
  146 + if (delegate &&
  147 + [delegate respondsToSelector:@selector(downloadFinished:filePath:)]) {
  148 + [delegate downloadFinished:self filePath:destinationPath];
  149 + }
  150 + if (_downloadProgressChangeBlock) {
  151 + _downloadProgressChangeBlock(self, 1.0);
  152 + }
  153 + if (_downloadFileCompleteionBlock) {
  154 + _downloadFileCompleteionBlock(self, destinationPath);
  155 + }
  156 + return;
  157 + }
  158 + }
  159 +
  160 + if (![[NSFileManager defaultManager] fileExistsAtPath:temporaryPath]) {
  161 + BOOL createSucces =
  162 + [[NSFileManager defaultManager] createFileAtPath:temporaryPath
  163 + contents:nil
  164 + attributes:nil];
  165 + if (!createSucces) {
  166 + if (delegate && [delegate respondsToSelector:@selector(downloadFaild:
  167 + didFailWithError:)]) {
  168 + NSError *error =
  169 + [NSError errorWithDomain:@"Temporary File can not be create!"
  170 + code:111
  171 + userInfo:nil];
  172 + [delegate downloadFaild:self didFailWithError:error];
  173 + }
  174 + if (_failedBlock) {
  175 + NSError *error =
  176 + [NSError errorWithDomain:@"Temporary File can not be create!"
  177 + code:111
  178 + userInfo:nil];
  179 + _failedBlock(self, error);
  180 + }
  181 + return;
  182 + }
  183 + }
  184 +
  185 + [fileHandle closeFile];
  186 + fileHandle = [NSFileHandle fileHandleForWritingAtPath:temporaryPath];
  187 + offset = [fileHandle seekToEndOfFile];
  188 + NSString *range = [NSString stringWithFormat:@"bytes=%llu-", offset];
  189 +
  190 + KS3Client *ks3Client = [KS3Client initialize];
  191 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  192 +
  193 + NSString *strHost;
  194 + if (customBucketDomain != nil) {
  195 + strHost =
  196 + [NSString stringWithFormat:@"%@://%@/%@", [ks3Client requestProtocol],
  197 + customBucketDomain, _key];
  198 + } else {
  199 + strHost = [NSString
  200 + stringWithFormat:@"%@://%@.%@/%@", [ks3Client requestProtocol],
  201 + _bucketName, [ks3Client getBucketDomain], _key];
  202 + }
  203 +
  204 + NSString *strAuthorization = @"";
  205 + if (_credentials.accessKey != nil && _credentials.secretKey != nil) {
  206 + strAuthorization =
  207 + [KS3AuthUtils KSYAuthorizationWithAccessKey:_credentials.accessKey
  208 + secretKey:_credentials.secretKey
  209 + httpVerbType:KSS3_HTTPVerbGet
  210 + contentMd5:@""
  211 + contentType:@""
  212 + date:_requestDate
  213 + canonicalizedKssHeader:@""
  214 + canonicalizedResource:_kSYResource];
  215 + }
  216 +
  217 + NSTimeInterval downloadTimeOut = _timeoutInterval;
  218 + if (_timeoutInterval == 0 || _timeoutInterval < 0) {
  219 + downloadTimeOut = 60;
  220 + }
  221 + NSURL *urlRequest = [NSURL URLWithString:strHost];
  222 + NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
  223 + initWithURL:urlRequest
  224 + cachePolicy:NSURLRequestReloadIgnoringCacheData
  225 + timeoutInterval:downloadTimeOut];
  226 + [request setHTTPMethod:@"GET"];
  227 + [request setValue:_strDate forHTTPHeaderField:@"Date"];
  228 + [request setValue:strAuthorization forHTTPHeaderField:@"Authorization"];
  229 + [request addValue:range forHTTPHeaderField:@"Range"];
  230 +
  231 + // **** set token
  232 + NSLog(@"====== start ======");
  233 + if (_credentials == nil) {
  234 + NSLog(@"====== _credentials is empty ======");
  235 + // NSDictionary *dicParams = [NSDictionary
  236 + // dictionaryWithObjectsAndKeys:
  237 + // @"GET", @"http_method",
  238 + // @"", @"content_md5",
  239 + // @"", @"content_type",
  240 + // _strDate, @"date",
  241 + // @"", @"headers",
  242 + // @"", @"resource", nil];
  243 + [request setValue:_strKS3Token forHTTPHeaderField:@"Authorization"];
  244 + }
  245 + [connection cancel];
  246 + connection = [[NSURLConnection alloc] initWithRequest:request
  247 + delegate:self
  248 + startImmediately:NO];
  249 + [connection scheduleInRunLoop:[NSRunLoop currentRunLoop]
  250 + forMode:KSYS3DefaultRunLoopMode];
  251 +
  252 + [connection start];
  253 +
  254 + while (!_isFinished) {
  255 + if (_isStop == YES) {
  256 + break;
  257 + }
  258 + [[NSRunLoop currentRunLoop] runMode:KSYS3DefaultRunLoopMode
  259 + beforeDate:[NSDate distantFuture]];
  260 + }
  261 +}
  262 +
  263 +- (KS3Response *)startURLRequest:(NSMutableURLRequest *)urlRequest
  264 + KS3Request:(KS3Request *)request
  265 + token:(NSString *)strToken {
  266 + if (strToken != nil) {
  267 + [urlRequest setValue:strToken forHTTPHeaderField:@"Authorization"];
  268 + [connection cancel];
  269 + connection = [[NSURLConnection alloc] initWithRequest:urlRequest
  270 + delegate:self
  271 + startImmediately:YES];
  272 + }
  273 + return nil;
  274 +}
  275 +
  276 +- (void)stop {
  277 + _isStop = YES;
  278 + [connection cancel];
  279 + connection = nil;
  280 + [fileHandle closeFile];
  281 + fileHandle = nil;
  282 +}
  283 +
  284 +- (void)stopAndClear {
  285 + [self stop];
  286 + [[NSFileManager defaultManager] removeItemAtPath:destinationPath error:nil];
  287 + [[NSFileManager defaultManager] removeItemAtPath:temporaryPath error:nil];
  288 +
  289 + if (delegate &&
  290 + [delegate
  291 + respondsToSelector:@selector(downloadProgressChange:progress:)]) {
  292 + [delegate downloadProgressChange:self progress:0];
  293 + }
  294 + if (_downloadProgressChangeBlock) {
  295 + _downloadProgressChangeBlock(self, 0.0);
  296 + }
  297 +}
  298 +
  299 +#pragma mark -
  300 +#pragma mark NSURLConnectionDelegate
  301 +
  302 +- (void)connection:(NSURLConnection *)connection
  303 +didReceiveResponse:(NSURLResponse *)response {
  304 + if ([response expectedContentLength] != NSURLResponseUnknownLength)
  305 + fileSize = (unsigned long long)[response expectedContentLength] + offset;
  306 + if (delegate &&
  307 + [delegate respondsToSelector:@selector(downloadBegin:
  308 + didReceiveResponseHeaders:)]) {
  309 + [delegate downloadBegin:self didReceiveResponseHeaders:response];
  310 + }
  311 + if (_downloadBeginBlock) {
  312 + _downloadBeginBlock(self, response);
  313 + }
  314 +}
  315 +
  316 +- (void)connection:(NSURLConnection *)connection
  317 + didReceiveData:(NSData *)aData {
  318 + [fileHandle writeData:aData];
  319 + offset = [fileHandle offsetInFile];
  320 + double progress = offset * 1.0 / fileSize;
  321 + if (_downloadProgressChangeBlock) {
  322 + _downloadProgressChangeBlock(self, progress);
  323 + }
  324 + if (delegate &&
  325 + [delegate
  326 + respondsToSelector:@selector(downloadProgressChange:progress:)]) {
  327 + [delegate downloadProgressChange:self progress:progress];
  328 + }
  329 +}
  330 +
  331 +- (void)connection:(NSURLConnection *)connection
  332 + didFailWithError:(NSError *)error {
  333 + [fileHandle closeFile];
  334 + if (_failedBlock) {
  335 + _failedBlock(self, error);
  336 + }
  337 + if (delegate && [delegate respondsToSelector:@selector(downloadFaild:
  338 + didFailWithError:)]) {
  339 + [delegate downloadFaild:self didFailWithError:error];
  340 + }
  341 +}
  342 +
  343 +- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  344 + _isFinished = YES;
  345 + [fileHandle closeFile];
  346 + [[NSFileManager defaultManager] moveItemAtPath:temporaryPath
  347 + toPath:destinationPath
  348 + error:nil];
  349 +
  350 + if (_downloadFileCompleteionBlock) {
  351 + _downloadFileCompleteionBlock(self, destinationPath);
  352 + }
  353 + if (delegate &&
  354 + [delegate respondsToSelector:@selector(downloadFinished:filePath:)]) {
  355 + [delegate downloadFinished:self filePath:destinationPath];
  356 + }
  357 +}
  358 +
  359 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3GetObjectACLRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3GetObjectACLRequest : KS3Request
  12 +
  13 +@property(strong, nonatomic) NSString *key;
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName
  16 + withKeyName:(NSString *)strKey;
  17 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3GetObjectACLRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetObjectACLRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3GetObjectACLRequest
  13 +
  14 +- (instancetype)initWithName:(NSString *)bucketName
  15 + withKeyName:(NSString *)strKey {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.key = [self URLEncodedString:strKey];
  20 + self.httpMethod = kHttpMethodGet;
  21 + self.contentMd5 = @"";
  22 + self.contentType = @"";
  23 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  24 + self.host = [NSString
  25 + stringWithFormat:@"%@://%@.%@/",
  26 + [[KS3Client initialize] requestProtocol], self.bucket,
  27 + [[KS3Client initialize] getBucketDomain]];
  28 +
  29 + //
  30 + self.kSYResource =
  31 + [NSString stringWithFormat:@"%@/%@?acl", self.kSYResource, _key];
  32 + self.host = [NSString stringWithFormat:@"%@%@?acl", self.host, _key];
  33 + }
  34 + return self;
  35 +}
  36 +
  37 +- (KS3URLRequest *)configureURLRequest {
  38 + [super configureURLRequest];
  39 + return self.urlRequest;
  40 +}
  41 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3GetObjectACLResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@class KS3BucketACLResult;
  11 +@interface KS3GetObjectACLResponse : KS3Response
  12 +@property(nonatomic, strong) KS3BucketACLResult *listBucketsResult;
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3GetObjectACLResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetObjectACLResponse.h"
  10 +#import "KS3BucketACLResult.h"
  11 +#import "KS3ObjectACLXMLParser.h"
  12 +@implementation KS3GetObjectACLResponse
  13 +
  14 +- (void)processBody {
  15 + KS3ObjectACLXMLParser *xmlParser = [[KS3ObjectACLXMLParser alloc] init];
  16 + [xmlParser kSS3XMLarse:body];
  17 + _listBucketsResult = xmlParser.listBuctkResult;
  18 +}
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.h 0 → 100644
  1 +//
  2 +// KSS3GetObjectRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3GetObjectRequest : KS3Request
  12 +
  13 +@property(nonatomic, strong) NSString *responseContentType;
  14 +@property(nonatomic, strong) NSString *responseContentLanguage;
  15 +@property(nonatomic, strong) NSString *responseExpires;
  16 +@property(nonatomic, strong) NSString *responseCacheControl;
  17 +@property(nonatomic, strong) NSString *responseContentDisposition;
  18 +@property(nonatomic, strong) NSString *responseContentEncoding;
  19 +
  20 +@property(nonatomic, strong) NSString *range;
  21 +@property(nonatomic, strong) NSString *ifModifiedSince;
  22 +@property(nonatomic, strong) NSString *ifUnmodifiedSince;
  23 +@property(nonatomic, strong) NSString *ifMatch;
  24 +@property(nonatomic, strong) NSString *ifNoneMatch;
  25 +@property(nonatomic, strong) NSString *versionId;
  26 +@property(nonatomic, strong) NSString *key;
  27 +
  28 +- (instancetype)initWithName:(NSString *)bucketName;
  29 +
  30 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.m 0 → 100644
  1 +//
  2 +// KSS3GetObjectRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetObjectRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3SDKUtil.h"
  13 +@implementation KS3GetObjectRequest
  14 +
  15 +- (instancetype)initWithName:(NSString *)bucketName {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.httpMethod = kHttpMethodGet;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  23 + self.host = [NSString
  24 + stringWithFormat:@"%@://%@.%@",
  25 + [[KS3Client initialize] requestProtocol], self.bucket,
  26 + [[KS3Client initialize] getBucketDomain]];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +- (KS3URLRequest *)configureURLRequest {
  32 + self.kSYResource = [self.kSYResource stringByAppendingFormat:@"/%@", _key];
  33 + self.host = [self.host stringByAppendingFormat:@"/%@", _key];
  34 +
  35 + // **** request params
  36 + NSMutableString *queryPramaString = [NSMutableString stringWithCapacity:512];
  37 + NSMutableString *subResouceString = [NSMutableString stringWithCapacity:512];
  38 + if (nil != _responseContentType) {
  39 + [queryPramaString appendFormat:@"%@=%@", kKS3QueryParamResponseContentType,
  40 + [KS3SDKUtil urlEncode:_responseContentType]];
  41 + [subResouceString appendFormat:@"%@=%@", kKS3QueryParamResponseContentType,
  42 + _responseContentType];
  43 + }
  44 + if (nil != _responseContentLanguage) {
  45 + if (queryPramaString.length > 0) {
  46 + [queryPramaString appendString:@"&"];
  47 + [subResouceString appendString:@"&"];
  48 + }
  49 + [queryPramaString
  50 + appendFormat:@"%@=%@", kKS3QueryParamResponseContentLanguage,
  51 + [KS3SDKUtil urlEncode:_responseContentLanguage]];
  52 + [subResouceString appendFormat:@"%@=%@",
  53 + kKS3QueryParamResponseContentLanguage,
  54 + _responseContentLanguage];
  55 + }
  56 + if (nil != _responseExpires) {
  57 + if (queryPramaString.length > 0) {
  58 + [queryPramaString appendString:@"&"];
  59 + [subResouceString appendString:@"&"];
  60 + }
  61 + [queryPramaString appendFormat:@"%@=%@", kKS3QueryParamResponseExpires,
  62 + [KS3SDKUtil urlEncode:_responseExpires]];
  63 + [subResouceString
  64 + appendFormat:@"%@=%@", kKS3QueryParamResponseExpires, _responseExpires];
  65 + }
  66 + if (nil != _responseCacheControl) {
  67 + if (queryPramaString.length > 0) {
  68 + [queryPramaString appendString:@"&"];
  69 + [subResouceString appendString:@"&"];
  70 + }
  71 + [queryPramaString
  72 + appendFormat:@"%@=%@", kKS3QueryParamResponseCacheControl,
  73 + [KS3SDKUtil urlEncode:_responseCacheControl]];
  74 + [subResouceString appendFormat:@"%@=%@", kKS3QueryParamResponseCacheControl,
  75 + _responseCacheControl];
  76 + }
  77 + if (nil != _responseContentDisposition) {
  78 + if (queryPramaString.length > 0) {
  79 + [queryPramaString appendString:@"&"];
  80 + [subResouceString appendString:@"&"];
  81 + }
  82 + [queryPramaString
  83 + appendFormat:@"%@=%@", kKS3QueryParamResponseContentDisposition,
  84 + [KS3SDKUtil urlEncode:_responseContentDisposition]];
  85 + [subResouceString appendFormat:@"%@=%@",
  86 + kKS3QueryParamResponseContentDisposition,
  87 + _responseContentDisposition];
  88 + }
  89 + if (nil != _responseContentEncoding) {
  90 + if (queryPramaString.length > 0) {
  91 + [queryPramaString appendString:@"&"];
  92 + [subResouceString appendString:@"&"];
  93 + }
  94 + [queryPramaString
  95 + appendFormat:@"%@=%@", kKS3QueryParamResponseContentEncoding,
  96 + [KS3SDKUtil urlEncode:_responseContentEncoding]];
  97 + [subResouceString appendFormat:@"%@=%@",
  98 + kKS3QueryParamResponseContentEncoding,
  99 + _responseContentEncoding];
  100 + }
  101 + if (queryPramaString.length > 0) {
  102 + self.host = [self.host stringByAppendingFormat:@"?%@", queryPramaString];
  103 + self.kSYResource =
  104 + [self.kSYResource stringByAppendingFormat:@"?%@", subResouceString];
  105 + }
  106 + [super configureURLRequest];
  107 +
  108 + // **** http header
  109 + if (nil != _range) {
  110 + [self.urlRequest setValue:_range forHTTPHeaderField:kKSHttpHdrRange];
  111 + }
  112 + if (nil != _ifModifiedSince) {
  113 + [self.urlRequest setValue:_ifModifiedSince
  114 + forHTTPHeaderField:kKSHttpHdrIfModifiedSince];
  115 + }
  116 + if (nil != _ifUnmodifiedSince) {
  117 + [self.urlRequest setValue:_ifUnmodifiedSince
  118 + forHTTPHeaderField:kKSHttpHdrIfUnmodifiedSince];
  119 + }
  120 + if (nil != _ifMatch) {
  121 + [self.urlRequest setValue:_ifMatch forHTTPHeaderField:kKSHttpHdrIfMatch];
  122 + }
  123 + if (nil != _ifNoneMatch) {
  124 + [self.urlRequest setValue:_ifNoneMatch
  125 + forHTTPHeaderField:kKSHttpHdrIfNoneMatch];
  126 + }
  127 + return self.urlRequest;
  128 +}
  129 +
  130 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.h 0 → 100644
  1 +//
  2 +// KSS3GetObjectResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3GetObjectResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.m 0 → 100644
  1 +//
  2 +// KSS3GetObjectResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3GetObjectResponse.h"
  10 +
  11 +@implementation KS3GetObjectResponse
  12 +- (void)processBody {
  13 +}
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.h 0 → 100644
  1 +//
  2 +// KSS3HeadObjectRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3HeadObjectRequest : KS3Request
  12 +
  13 +@property(nonatomic, strong) NSString *range;
  14 +@property(nonatomic, strong) NSString *ifModifiedSince;
  15 +@property(nonatomic, strong) NSString *ifUnmodifiedSince;
  16 +@property(nonatomic, strong) NSString *ifMatch;
  17 +@property(nonatomic, strong) NSString *ifNoneMatch;
  18 +@property(nonatomic, strong) NSString *key;
  19 +
  20 +- (instancetype)initWithName:(NSString *)bucketName
  21 + withKeyName:(NSString *)strKey;
  22 +
  23 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.m 0 → 100644
  1 +//
  2 +// KSS3HeadObjectRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3HeadObjectRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3HeadObjectRequest
  13 +
  14 +- (instancetype)initWithName:(NSString *)bucketName
  15 + withKeyName:(NSString *)strKey {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:bucketName];
  19 + self.key = [self URLEncodedString:strKey];
  20 + self.httpMethod = kHttpMethodHead;
  21 + self.contentMd5 = @"";
  22 + self.contentType = @"";
  23 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  24 + self.host = [NSString
  25 + stringWithFormat:@"%@://%@.%@",
  26 + [[KS3Client initialize] requestProtocol], self.bucket,
  27 + [[KS3Client initialize] getBucketDomain]];
  28 +
  29 + //
  30 + self.host = [NSString stringWithFormat:@"%@/%@", self.host, _key];
  31 + self.kSYResource =
  32 + [NSString stringWithFormat:@"%@/%@", self.kSYResource, _key];
  33 + }
  34 + return self;
  35 +}
  36 +
  37 +- (KS3URLRequest *)configureURLRequest {
  38 + [super configureURLRequest];
  39 +
  40 + // **** http header
  41 + if (nil != _range) {
  42 + [self.urlRequest setValue:_range forHTTPHeaderField:kKSHttpHdrRange];
  43 + }
  44 + if (nil != _ifModifiedSince) {
  45 + [self.urlRequest setValue:_ifModifiedSince
  46 + forHTTPHeaderField:kKSHttpHdrIfModifiedSince];
  47 + }
  48 + if (nil != _ifUnmodifiedSince) {
  49 + [self.urlRequest setValue:_ifUnmodifiedSince
  50 + forHTTPHeaderField:kKSHttpHdrIfUnmodifiedSince];
  51 + }
  52 + if (nil != _ifMatch) {
  53 + [self.urlRequest setValue:_ifMatch forHTTPHeaderField:kKSHttpHdrIfMatch];
  54 + }
  55 + if (nil != _ifNoneMatch) {
  56 + [self.urlRequest setValue:_ifNoneMatch
  57 + forHTTPHeaderField:kKSHttpHdrIfNoneMatch];
  58 + }
  59 + return self.urlRequest;
  60 +}
  61 +
  62 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.h 0 → 100644
  1 +//
  2 +// KSS3HeadObjectResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3HeadObjectResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.m 0 → 100644
  1 +//
  2 +// KSS3HeadObjectResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/14/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3HeadObjectResponse.h"
  10 +
  11 +@implementation KS3HeadObjectResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.h 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3AbstractPutRequest.h"
  10 +
  11 +@class KS3AccessControlList;
  12 +@class KS3GrantAccessControlList;
  13 +
  14 +@interface KS3InitiateMultipartUploadRequest : KS3AbstractPutRequest
  15 +
  16 +- (id)initWithKey:(NSString *)aKey
  17 + inBucket:(NSString *)aBucket
  18 + acl:(KS3AccessControlList *)acl
  19 + grantAcl:(NSArray *)arrGrantAcl;
  20 +
  21 +@property(nonatomic, strong) NSString *key;
  22 +@property(nonatomic, strong) NSString *cacheControl;
  23 +@property(nonatomic, strong) NSString *contentDisposition;
  24 +@property(nonatomic, strong) NSString *contentEncoding;
  25 +@property(nonatomic, strong) NSString *expires;
  26 +@property(nonatomic, strong) NSString *xkssMeta;
  27 +@property(nonatomic, strong) NSString *xkssStorageClass;
  28 +@property(nonatomic, strong) NSString *xkssWebSiteRedirectLocation;
  29 +@property(nonatomic, strong) NSString *xkssAcl;
  30 +@property(nonatomic, strong) KS3AccessControlList *acl;
  31 +@property(nonatomic, strong) NSArray *arrGrantAcl;
  32 +
  33 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.m 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadRequest.h"
  10 +#import "KS3AccessControlList.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +#import "KS3GrantAccessControlList.h"
  14 +@interface KS3InitiateMultipartUploadRequest ()
  15 +
  16 +//@property (nonatomic, assign) BOOL expiresSet;
  17 +@end
  18 +
  19 +@implementation KS3InitiateMultipartUploadRequest
  20 +
  21 +- (id)init {
  22 + if (self = [super init]) {
  23 + // _expires = 0;
  24 + // _expiresSet = NO;
  25 + }
  26 +
  27 + return self;
  28 +}
  29 +
  30 +- (id)initWithKey:(NSString *)aKey
  31 + inBucket:(NSString *)aBucket
  32 + acl:(KS3AccessControlList *)acl
  33 + grantAcl:(NSArray *)arrGrantAcl {
  34 + if (self = [self init]) {
  35 + self.key = [self URLEncodedString:aKey];
  36 + self.bucket = [self URLEncodedString:aBucket];
  37 + self.httpMethod = kHttpMethodPost;
  38 + self.contentMd5 = @"";
  39 + self.contentType = @"";
  40 + self.acl = acl;
  41 + self.arrGrantAcl = arrGrantAcl;
  42 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  43 + self.host = @"";
  44 +
  45 + //
  46 + self.kSYResource =
  47 + [NSString stringWithFormat:@"%@/%@?uploads", self.kSYResource, _key];
  48 + if (_arrGrantAcl != nil) {
  49 + [self sortGrantAcl]; // **** ACL的 x-kss 需要先排序
  50 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  51 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[i];
  52 + NSString *strValue =
  53 + [NSString stringWithFormat:@"id=\"%@\", ", grantAcl.identifier];
  54 + strValue = [strValue stringByAppendingFormat:@"displayName=\"%@\"",
  55 + grantAcl.displayName];
  56 + }
  57 + }
  58 + }
  59 +
  60 + return self;
  61 +}
  62 +
  63 +- (void)sortGrantAcl {
  64 + NSMutableArray *arrAccessGrantAcl =
  65 + [[NSMutableArray alloc] initWithCapacity:0];
  66 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  67 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[i];
  68 + [arrAccessGrantAcl addObject:grantAcl.accessGrantACL];
  69 + }
  70 + NSSortDescriptor *descriptor =
  71 + [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
  72 + NSArray *descriptors = [NSArray arrayWithObject:descriptor];
  73 + NSArray *resultArray =
  74 + [arrAccessGrantAcl sortedArrayUsingDescriptors:descriptors];
  75 + NSMutableArray *arrGrantAcl = [[NSMutableArray alloc] initWithCapacity:0];
  76 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  77 + NSString *strAccessGrantAcl = resultArray[i];
  78 + for (NSInteger j = 0; j < _arrGrantAcl.count; j++) {
  79 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[j];
  80 + if ([grantAcl.accessGrantACL isEqualToString:strAccessGrantAcl] == YES) {
  81 + [arrGrantAcl addObject:grantAcl];
  82 + break;
  83 + }
  84 + }
  85 + }
  86 + self.arrGrantAcl = arrGrantAcl;
  87 +}
  88 +
  89 +- (void)setCompleteRequest {
  90 + KS3Client *ks3Client = [KS3Client initialize];
  91 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  92 +
  93 + if (customBucketDomain != nil) {
  94 + self.host =
  95 + [NSString stringWithFormat:@"%@://%@/%@?uploads",
  96 + [[KS3Client initialize] requestProtocol],
  97 + customBucketDomain, self.key];
  98 + } else {
  99 + self.host = [NSString
  100 + stringWithFormat:@"%@://%@.%@/%@?uploads",
  101 + [[KS3Client initialize] requestProtocol], self.bucket,
  102 + [ks3Client getBucketDomain], self.key];
  103 + }
  104 +
  105 + if (_acl != nil) {
  106 + [self.urlRequest setValue:_acl.accessACL forHTTPHeaderField:@"x-kss-acl"];
  107 + }
  108 +
  109 + if (_arrGrantAcl != nil) {
  110 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  111 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[i];
  112 + NSString *strValue =
  113 + [NSString stringWithFormat:@"id=\"%@\", ", grantAcl.identifier];
  114 + strValue = [strValue
  115 + stringByAppendingFormat:@"displayName=\"%@\"", grantAcl.displayName];
  116 + [self.urlRequest setValue:strValue
  117 + forHTTPHeaderField:grantAcl.accessGrantACL];
  118 + }
  119 + }
  120 +
  121 + [self.urlRequest setHTTPMethod:kHttpMethodPost];
  122 +
  123 + if (nil != self.contentEncoding) {
  124 + [self.urlRequest setValue:self.contentEncoding
  125 + forHTTPHeaderField:kKSHttpHdrContentEncoding];
  126 + }
  127 + if (nil != self.contentDisposition) {
  128 + [self.urlRequest setValue:self.contentDisposition
  129 + forHTTPHeaderField:kKSHttpHdrContentDisposition];
  130 + }
  131 + if (nil != self.cacheControl) {
  132 + [self.urlRequest setValue:self.cacheControl
  133 + forHTTPHeaderField:kKSHttpHdrCacheControl];
  134 + }
  135 + if (nil != _expires) {
  136 + [self.urlRequest setValue:_expires forHTTPHeaderField:@"Expires"];
  137 + }
  138 + if (nil != _xkssMeta) {
  139 + [self.urlRequest setValue:_xkssMeta forHTTPHeaderField:@"x-kss-meta-"];
  140 + }
  141 + if (nil != _xkssStorageClass) {
  142 + [self.urlRequest setValue:_xkssStorageClass
  143 + forHTTPHeaderField:@"x-kss-storage-class"];
  144 + }
  145 + if (nil != _xkssWebSiteRedirectLocation) {
  146 + [self.urlRequest setValue:_xkssWebSiteRedirectLocation
  147 + forHTTPHeaderField:@"x-kss-website-redirect-location"];
  148 + }
  149 +
  150 + // **** acl header
  151 + if (nil != _xkssAcl) {
  152 + [self.urlRequest setValue:_xkssAcl forHTTPHeaderField:@"x-kss-acl"];
  153 + }
  154 +}
  155 +
  156 +- (NSMutableURLRequest *)configureURLRequest {
  157 + [super configureURLRequest];
  158 + return self.urlRequest;
  159 +}
  160 +
  161 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.h 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3Response.h"
  11 +
  12 +@interface KS3InitiateMultipartUploadResponse : KS3Response
  13 +@property(nonatomic, strong) KS3MultipartUpload *multipartUpload;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.m 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadResponse.h"
  10 +#import "KS3InitiateMultipartUploadXMLParser.h"
  11 +
  12 +@implementation KS3InitiateMultipartUploadResponse
  13 +
  14 +- (void)processBody {
  15 + KS3InitiateMultipartUploadXMLParser *xmlParser =
  16 + [[KS3InitiateMultipartUploadXMLParser alloc] init];
  17 + [xmlParser kSS3XMLarse:body];
  18 + _multipartUpload = xmlParser.listBuctkResult.multipartUpload;
  19 +}
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.h 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadResult.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3InitiateMultipartUploadResult : NSObject
  13 +@property(strong, nonatomic) KS3MultipartUpload *multipartUpload;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.m 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadResult.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadResult.h"
  10 +
  11 +@implementation KS3InitiateMultipartUploadResult
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.h 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadXMLParser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadResult.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3InitiateMultipartUploadXMLParser : NSObject <NSXMLParserDelegate>
  13 +@property(strong, nonatomic) KS3InitiateMultipartUploadResult *listBuctkResult;
  14 +- (void)kSS3XMLarse:(NSData *)dataXml;
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.m 0 → 100644
  1 +//
  2 +// KSS3InitiateMultipartUploadXMLParser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadXMLParser.h"
  10 +#import "KS3MultipartUpload.h"
  11 +@interface KS3InitiateMultipartUploadXMLParser ()
  12 +@property(strong, nonatomic) KS3MultipartUpload *multipartUpload;
  13 +@property(strong, nonatomic) NSString *currentTag;
  14 +@property(strong, nonatomic) NSMutableString *currentText;
  15 +@end
  16 +
  17 +@implementation KS3InitiateMultipartUploadXMLParser
  18 +
  19 +- (void)kSS3XMLarse:(NSData *)dataXml {
  20 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  21 + [parser setDelegate:self];
  22 + [parser parse];
  23 +}
  24 +
  25 +#pragma mark - Xml delegate
  26 +
  27 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  28 + _listBuctkResult = [[KS3InitiateMultipartUploadResult alloc] init];
  29 + _multipartUpload = [[KS3MultipartUpload alloc] init];
  30 +}
  31 +
  32 +- (void)parser:(NSXMLParser *)parser
  33 + didStartElement:(NSString *)elementName
  34 + namespaceURI:(NSString *)namespaceURI
  35 + qualifiedName:(NSString *)qName
  36 + attributes:(NSDictionary *)attributeDict {
  37 + if (nil != _currentText) {
  38 + _currentText = nil;
  39 + }
  40 + _currentTag = elementName;
  41 +
  42 + if ([elementName isEqualToString:@"Bucket"]) {
  43 + }
  44 + if ([elementName isEqualToString:@"Key"]) {
  45 + }
  46 + if ([elementName isEqualToString:@"UploadId"]) {
  47 + }
  48 +}
  49 +
  50 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  51 + if (nil == _currentText) {
  52 + _currentText = [[NSMutableString alloc] init];
  53 + }
  54 + [_currentText appendString:string];
  55 +}
  56 +
  57 +- (void)parser:(NSXMLParser *)parser
  58 + didEndElement:(NSString *)elementName
  59 + namespaceURI:(NSString *)namespaceURI
  60 + qualifiedName:(NSString *)qName {
  61 + if ([elementName isEqualToString:@"Bucket"]) {
  62 + _multipartUpload.bucket = _currentText;
  63 + }
  64 + if ([elementName isEqualToString:@"Key"]) {
  65 +
  66 + _multipartUpload.key = _currentText;
  67 + }
  68 + if ([elementName isEqualToString:@"UploadId"]) {
  69 + _multipartUpload.uploadId = _currentText;
  70 + }
  71 + if ([elementName isEqualToString:@"InitiateMultipartUploadResult"]) {
  72 + _listBuctkResult.multipartUpload = _multipartUpload;
  73 + }
  74 +}
  75 +
  76 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  77 +}
  78 +
  79 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  80 +}
  81 +
  82 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.h 0 → 100644
  1 +//
  2 +// KSS3ListPartsRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3Request.h"
  11 +
  12 +@interface KS3ListPartsRequest : KS3Request
  13 +
  14 +@property(strong, nonatomic) NSString *key;
  15 +@property(nonatomic, strong) NSString *uploadId;
  16 +@property(nonatomic, assign) int32_t maxParts;
  17 +@property(nonatomic, assign) int32_t partNumberMarker;
  18 +@property(nonatomic, strong) NSString *encodingType;
  19 +
  20 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload;
  21 +
  22 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.m 0 → 100644
  1 +//
  2 +// KSS3ListPartsRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +
  13 +@implementation KS3ListPartsRequest
  14 +
  15 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload {
  16 + if (self = [self init]) {
  17 + self.bucket = [self URLEncodedString:multipartUpload.bucket];
  18 + self.key = [self URLEncodedString:multipartUpload.key];
  19 + self.uploadId = multipartUpload.uploadId;
  20 + self.contentMd5 = @"";
  21 + self.contentType = @"";
  22 + self.maxParts = 1000; // **** default value
  23 + self.httpMethod = kHttpMethodGet;
  24 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  25 + //
  26 + self.kSYResource =
  27 + [NSString stringWithFormat:@"%@/%@?uploadId=%@", self.kSYResource,
  28 + self.key, self.uploadId];
  29 + }
  30 + return self;
  31 +}
  32 +
  33 +- (NSMutableURLRequest *)configureURLRequest {
  34 + KS3Client *ks3Client = [KS3Client initialize];
  35 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  36 + if (customBucketDomain != nil) {
  37 + self.host =
  38 + [NSString stringWithFormat:@"%@://%@/%@?uploadId=%@",
  39 + [[KS3Client initialize] requestProtocol],
  40 + customBucketDomain, self.key, self.uploadId];
  41 + } else {
  42 + self.host = [NSString
  43 + stringWithFormat:@"%@://%@.%@/%@?uploadId=%@",
  44 + [[KS3Client initialize] requestProtocol], self.bucket,
  45 + [[KS3Client initialize] getBucketDomain], self.key,
  46 + self.uploadId];
  47 + }
  48 +
  49 + NSMutableString *subresource = [NSMutableString stringWithCapacity:512];
  50 + if (self.maxParts != 1000) { // **** default is 1000
  51 + [subresource appendFormat:@"&%@=%d", kKS3QueryParamMaxParts, self.maxParts];
  52 + }
  53 + if (self.partNumberMarker != 0) {
  54 + [subresource appendFormat:@"&%@=%d", kKS3QueryParamPartNumberMarker,
  55 + self.partNumberMarker];
  56 + }
  57 + if (nil != _encodingType) {
  58 + if (subresource.length > 0) {
  59 + [subresource appendString:@"&"];
  60 + }
  61 + [subresource
  62 + appendFormat:@"%@=%@", kKS3QueryParamEncodingType, _encodingType];
  63 + }
  64 + if (subresource.length > 0) {
  65 + self.host = [NSString stringWithFormat:@"%@%@", self.host, subresource];
  66 + }
  67 + [super configureURLRequest];
  68 + [self.urlRequest setHTTPMethod:kHttpMethodGet];
  69 + return self.urlRequest;
  70 +}
  71 +
  72 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.h 0 → 100644
  1 +//
  2 +// KSS3ListPartsResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsResult.h"
  10 +#import "KS3Response.h"
  11 +
  12 +@class KS3ListPartsResult;
  13 +@interface KS3ListPartsResponse : KS3Response
  14 +
  15 +@property(strong, nonatomic) KS3ListPartsResult *listResult;
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.m 0 → 100644
  1 +//
  2 +// KSS3ListPartsResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsResponse.h"
  10 +#import "KS3ListPartsResultXMLParser.h"
  11 +
  12 +@implementation KS3ListPartsResponse
  13 +- (void)processBody {
  14 + NSLog(@"KS3ListPartsResponse body: %@",
  15 + [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]);
  16 + KS3ListPartsResultXMLParser *xmlParser =
  17 + [[KS3ListPartsResultXMLParser alloc] init];
  18 + [xmlParser kSS3XMLarse:body];
  19 + _listResult = xmlParser.listPartsResult;
  20 +}
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.h 0 → 100644
  1 +//
  2 +// KSS3ListPartsResult.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Owner.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3ListPartsResult : NSObject
  13 +
  14 +@property(strong, nonatomic) NSString *Bucket;
  15 +
  16 +@property(strong, nonatomic) NSString *key;
  17 +@property(strong, nonatomic) NSString *UploadId;
  18 +
  19 +@property(nonatomic) int32_t partNumberMarker;
  20 +
  21 +@property(nonatomic) int32_t maxParts;
  22 +
  23 +@property(nonatomic) BOOL isTruncated;
  24 +
  25 +@property(strong, nonatomic) KS3Owner *initiator;
  26 +
  27 +@property(strong, nonatomic) KS3Owner *owner;
  28 +
  29 +@property(strong, nonatomic) NSMutableArray *parts;
  30 +
  31 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.m 0 → 100644
  1 +//
  2 +// KSS3ListPartsResult.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsResult.h"
  10 +
  11 +@implementation KS3ListPartsResult
  12 +
  13 +- (instancetype)init {
  14 + self = [super init];
  15 + if (self) {
  16 + _parts = [NSMutableArray new];
  17 + }
  18 + return self;
  19 +}
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.h 0 → 100644
  1 +//
  2 +// KSS3ListPartsResultXMLParser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsResult.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +@interface KS3ListPartsResultXMLParser : NSObject <NSXMLParserDelegate>
  13 +
  14 +@property(strong, nonatomic) KS3ListPartsResult *listPartsResult;
  15 +
  16 +- (void)kSS3XMLarse:(NSData *)dataXml;
  17 +
  18 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.m 0 → 100644
  1 +//
  2 +// KSS3ListPartsResultXMLParser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListPartsResultXMLParser.h"
  10 +#import "KS3Part.h"
  11 +
  12 +@interface KS3ListPartsResultXMLParser ()
  13 +@property(strong, nonatomic) NSString *currentTag;
  14 +@property(strong, nonatomic) NSMutableString *currentText;
  15 +@property(assign, nonatomic) BOOL isInitiator;
  16 +@property(assign, nonatomic) BOOL isOwner;
  17 +@property(strong, nonatomic) KS3Part *part;
  18 +@end
  19 +
  20 +@implementation KS3ListPartsResultXMLParser
  21 +
  22 +- (void)kSS3XMLarse:(NSData *)dataXml {
  23 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  24 + [parser setDelegate:self];
  25 + [parser parse];
  26 +}
  27 +
  28 +#pragma mark - Xml delegate
  29 +
  30 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  31 + _listPartsResult = [[KS3ListPartsResult alloc] init];
  32 +}
  33 +
  34 +- (void)parser:(NSXMLParser *)parser
  35 + didStartElement:(NSString *)elementName
  36 + namespaceURI:(NSString *)namespaceURI
  37 + qualifiedName:(NSString *)qName
  38 + attributes:(NSDictionary *)attributeDict {
  39 + if (nil != _currentText) {
  40 + _currentText = nil;
  41 + }
  42 + if ([elementName isEqualToString:@"ns2:Initiator"]) {
  43 + _isInitiator = YES;
  44 + _isOwner = NO;
  45 + if (nil != _listPartsResult.initiator) {
  46 + _listPartsResult.initiator = nil;
  47 + }
  48 + _listPartsResult.initiator = [[KS3Owner alloc] init];
  49 +
  50 + } else if ([elementName isEqualToString:@"ns2:Owner"]) {
  51 + _isOwner = YES;
  52 + _isInitiator = NO;
  53 + if (nil != _listPartsResult.owner) {
  54 + _listPartsResult.owner = nil;
  55 + }
  56 + _listPartsResult.owner = [[KS3Owner alloc] init];
  57 + } else if ([elementName isEqualToString:@"ns2:Part"]) {
  58 + if (nil != _part) {
  59 + _part = nil;
  60 + }
  61 + _part = [KS3Part new];
  62 + }
  63 +}
  64 +
  65 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  66 + if (nil == _currentText) {
  67 + _currentText = [[NSMutableString alloc] init];
  68 + }
  69 +
  70 + [_currentText appendString:string];
  71 +}
  72 +
  73 +- (void)parser:(NSXMLParser *)parser
  74 + didEndElement:(NSString *)elementName
  75 + namespaceURI:(NSString *)namespaceURI
  76 + qualifiedName:(NSString *)qName {
  77 +
  78 + if (!_isInitiator && !_isOwner) {
  79 + if ([elementName isEqualToString:@"ns2:Bucket"]) {
  80 + _listPartsResult.Bucket = _currentText;
  81 + } else if ([elementName isEqualToString:@"ns2:Key"]) {
  82 + _listPartsResult.key = _currentText;
  83 + } else if ([elementName isEqualToString:@"ns2:UploadId"]) {
  84 + _listPartsResult.UploadId = _currentText;
  85 + } else if ([elementName isEqualToString:@"ns2:PartNumberMarker"]) {
  86 + _listPartsResult.partNumberMarker = (int32_t)[_currentText integerValue];
  87 + } else if ([elementName isEqualToString:@"ns2:MaxParts"]) {
  88 + _listPartsResult.maxParts = (int32_t)[_currentText integerValue];
  89 + } else if ([elementName isEqualToString:@"PartNumber"]) {
  90 + _part.partNumber = (int32_t)[_currentText integerValue];
  91 + } else if ([elementName isEqualToString:@"ETag"]) {
  92 + _part.etag = _currentText;
  93 + } else if ([elementName isEqualToString:@"LastModified"]) {
  94 + _part.lastModified = _currentText;
  95 + } else if ([elementName isEqualToString:@"Size"]) {
  96 + _part.size = [_currentText longLongValue];
  97 + } else if ([elementName isEqualToString:@"ns2:Part"]) {
  98 + [_listPartsResult.parts addObject:_part];
  99 + }
  100 + } else if (_isInitiator && !_isOwner) {
  101 + if ([elementName isEqualToString:@"ns2:ID"]) {
  102 + _listPartsResult.initiator.ID = _currentText;
  103 + } else if ([elementName isEqualToString:@"ns2:DisplayName"]) {
  104 + _listPartsResult.initiator.displayName = _currentText;
  105 + } else if ([elementName isEqualToString:@"ns2:Initiator"]) {
  106 + _isInitiator = NO;
  107 + }
  108 +
  109 + } else if (_isOwner && !_isInitiator) {
  110 + if ([elementName isEqualToString:@"ns2:ID"]) {
  111 + _listPartsResult.initiator.ID = _currentText;
  112 + } else if ([elementName isEqualToString:@"ns2:DisplayName"]) {
  113 + _listPartsResult.initiator.displayName = _currentText;
  114 + } else if ([elementName isEqualToString:@"ns2:Owner"]) {
  115 + _isOwner = NO;
  116 + }
  117 + }
  118 +}
  119 +
  120 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  121 +}
  122 +
  123 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  124 +}
  125 +
  126 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.h 0 → 100644
  1 +//
  2 +// KSS3MultipartUpload.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Owner.h"
  10 +#import <Foundation/Foundation.h>
  11 +
  12 +//上传类型
  13 +typedef enum {
  14 + kUploadAlasset = 0, //相册中
  15 + kUploadNormal, //沙盒里或工程里
  16 +} UploadType;
  17 +
  18 +@interface KS3MultipartUpload : NSObject
  19 +
  20 +@property(nonatomic, strong) NSString *key;
  21 +
  22 +@property(nonatomic, strong) NSString *bucket;
  23 +
  24 +@property(nonatomic, strong) NSString *uploadId;
  25 +
  26 +@property(nonatomic, strong) NSString *storageClass;
  27 +
  28 +@property(nonatomic, strong) KS3Owner *initiator;
  29 +
  30 +@property(nonatomic, strong) KS3Owner *owner;
  31 +
  32 +@property(nonatomic, strong) NSDate *initiated;
  33 +
  34 +@property(assign, readonly) BOOL isCanceled;
  35 +
  36 +@property(assign, nonatomic, readonly) BOOL isPaused;
  37 +
  38 +@property(assign, nonatomic) UploadType uploadType;
  39 +
  40 +//暂停
  41 +- (void)pause;
  42 +//继续
  43 +- (void)proceed;
  44 +//取消
  45 +- (void)cancel;
  46 +
  47 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.m 0 → 100644
  1 +//
  2 +// KSS3MultipartUpload.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3AbortMultipartUploadRequest.h"
  11 +#import "KS3AbortMultipartUploadResponse.h"
  12 +
  13 +@implementation KS3MultipartUpload
  14 +
  15 +- (void)pause {
  16 + _isPaused = YES;
  17 +}
  18 +
  19 +- (void)proceed {
  20 + _isPaused = NO;
  21 + _isCanceled = NO;
  22 +}
  23 +
  24 +- (void)cancel {
  25 + _isCanceled = YES;
  26 +}
  27 +
  28 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.h 0 → 100644
  1 +//
  2 +// KSS3ObjectACLXMLParser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketACLResult.h"
  10 +#import <Foundation/Foundation.h>
  11 +@interface KS3ObjectACLXMLParser : NSObject <NSXMLParserDelegate>
  12 +@property(strong, nonatomic) KS3BucketACLResult *listBuctkResult;
  13 +- (void)kSS3XMLarse:(NSData *)dataXml;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.m 0 → 100644
  1 +//
  2 +// KSS3ObjectACLXMLParser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ObjectACLXMLParser.h"
  10 +#import "KS3Grant.h"
  11 +
  12 +@interface KS3ObjectACLXMLParser ()
  13 +@property(strong, nonatomic) NSString *currentTag;
  14 +@property(strong, nonatomic) NSMutableString *currentText;
  15 +@property(strong, nonatomic) KS3Grant *grant;
  16 +@property(strong, nonatomic) KS3Grantee *grantee;
  17 +@property(nonatomic) BOOL isOwnerParser;
  18 +@property(nonatomic) BOOL isGrantParser;
  19 +@end
  20 +
  21 +@implementation KS3ObjectACLXMLParser
  22 +- (void)kSS3XMLarse:(NSData *)dataXml {
  23 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  24 + [parser setDelegate:self];
  25 + [parser parse];
  26 +}
  27 +
  28 +#pragma mark - Xml delegate
  29 +
  30 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  31 + _listBuctkResult = [[KS3BucketACLResult alloc] init];
  32 +}
  33 +
  34 +- (void)parser:(NSXMLParser *)parser
  35 + didStartElement:(NSString *)elementName
  36 + namespaceURI:(NSString *)namespaceURI
  37 + qualifiedName:(NSString *)qName
  38 + attributes:(NSDictionary *)attributeDict {
  39 + if (nil != _currentText) {
  40 + _currentText = nil;
  41 + }
  42 + _currentTag = elementName;
  43 +
  44 + if ([elementName isEqualToString:@"Owner"]) {
  45 + _listBuctkResult.owner = [KS3Owner new];
  46 + _isOwnerParser = YES;
  47 + _isGrantParser = NO;
  48 + }
  49 + if ([elementName isEqualToString:@"Grant"]) {
  50 + if (nil != _grant) {
  51 + _grant = nil;
  52 + }
  53 + if (nil != _grantee) {
  54 + _grantee = nil;
  55 + }
  56 + _grantee = [KS3Grantee new];
  57 + _grant = [KS3Grant new];
  58 +
  59 + _isGrantParser = YES;
  60 + _isOwnerParser = NO;
  61 + }
  62 +}
  63 +
  64 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  65 + if (nil == _currentText) {
  66 + _currentText = [[NSMutableString alloc] init];
  67 + }
  68 + [_currentText appendString:string];
  69 +}
  70 +
  71 +- (void)parser:(NSXMLParser *)parser
  72 + didEndElement:(NSString *)elementName
  73 + namespaceURI:(NSString *)namespaceURI
  74 + qualifiedName:(NSString *)qName {
  75 + if (_isOwnerParser) {
  76 + if ([elementName isEqualToString:@"ID"]) {
  77 + _listBuctkResult.owner.ID = _currentText;
  78 + }
  79 + if ([elementName isEqualToString:@"DisplayName"]) {
  80 + _listBuctkResult.owner.displayName = _currentText;
  81 + }
  82 + }
  83 + if (_isGrantParser) {
  84 + if ([elementName isEqualToString:@"ID"]) {
  85 + _grantee.ID = _currentText;
  86 + }
  87 + if ([elementName isEqualToString:@"DisplayName"]) {
  88 + _grantee.displayName = _currentText;
  89 + }
  90 + if ([elementName isEqualToString:@"URI"]) {
  91 + _grantee.URI = _currentText;
  92 + }
  93 + if ([elementName isEqualToString:@"Permission"]) {
  94 + _grant.permission = _currentText;
  95 + }
  96 + }
  97 + if ([elementName isEqualToString:@"Owner"]) {
  98 + _isOwnerParser = NO;
  99 + }
  100 + if ([elementName isEqualToString:@"Grant"]) {
  101 + _isGrantParser = NO;
  102 + _grant.grantee = _grantee;
  103 + [_listBuctkResult.accessControlList addObject:_grant];
  104 + }
  105 +}
  106 +
  107 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  108 +}
  109 +
  110 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  111 +}
  112 +
  113 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.h 0 → 100644
  1 +//
  2 +// KSS3Part.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3Part : NSObject
  12 +
  13 +@property(strong, nonatomic) NSString *etag;
  14 +
  15 +@property(strong, nonatomic) NSString *lastModified;
  16 +
  17 +@property(nonatomic, assign) int32_t partNumber;
  18 +
  19 +@property(nonatomic, assign) long long size;
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.m 0 → 100644
  1 +//
  2 +// KSS3Part.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/16/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Part.h"
  10 +
  11 +@implementation KS3Part
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.h 0 → 100644
  1 +//
  2 +// KS3PutObjectCopyRequest.h
  3 +// KSYSDKDemo
  4 +//
  5 +// Created by Blues on 12/25/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3BucketObject.h"
  10 +#import "KS3Request.h"
  11 +
  12 +@interface KS3PutObjectCopyRequest : KS3Request
  13 +
  14 +@property(nonatomic, strong) NSString *strSourceBucket;
  15 +@property(nonatomic, strong) NSString *strSourceObject;
  16 +@property(nonatomic, strong) NSString *xkssMetaDataDirective;
  17 +@property(nonatomic, strong) NSString *xkssCopySourceIfMatch;
  18 +@property(nonatomic, strong) NSString *xkssCopySourceIfNoneMatch;
  19 +@property(nonatomic, strong) NSString *xkssCopySourceIfUnmodifiedSince;
  20 +@property(nonatomic, strong) NSString *xkssCopySourceIfModifiedSince;
  21 +@property(nonatomic, strong) NSString *xkssMeta;
  22 +@property(nonatomic, strong) NSString *xkssStorageClass;
  23 +@property(nonatomic, strong) NSString *xkssWebsiteRedirectLocation;
  24 +
  25 +@property(nonatomic, strong) NSString *xkssServerSideEncryption;
  26 +@property(nonatomic, strong) NSString *xkssServerSideEncryptionCustomerKey;
  27 +@property(nonatomic, strong)
  28 + NSString *xkssServerSideEncryptionCustomerAlgorithm;
  29 +@property(nonatomic, strong) NSString *xkssServerSideEncryptionCustomerKeyMD5;
  30 +@property(nonatomic, strong)
  31 + NSString *xkssCopySourceServerSideEncryptionCustomerKey;
  32 +@property(nonatomic, strong)
  33 + NSString *xkssCopySourceServerSideEncryptionCustomerAlgorithm;
  34 +@property(nonatomic, strong)
  35 + NSString *xkssCopySourceServerSideEncryptionCustomerMD5;
  36 +@property(nonatomic, strong) NSString *xkssAcl;
  37 +
  38 +@property(nonatomic, strong) NSString *key;
  39 +
  40 +//- (instancetype)initWithName:(NSString *)bucketName;
  41 +- (instancetype)initWithName:(KS3BucketObject *)destBucketObj
  42 + sourceBucketObj:(KS3BucketObject *)sourBucketObj;
  43 +
  44 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.m 0 → 100644
  1 +//
  2 +// KS3PutObjectCopyRequest.m
  3 +// KSYSDKDemo
  4 +//
  5 +// Created by Blues on 12/25/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3PutObjectCopyRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3PutObjectCopyRequest
  13 +
  14 +- (instancetype)initWithName:(KS3BucketObject *)destBucketObj
  15 + sourceBucketObj:(KS3BucketObject *)sourBucketObj {
  16 + self = [super init];
  17 + if (self) {
  18 + self.bucket = [self URLEncodedString:destBucketObj.bucketName];
  19 + self.key = [self URLEncodedString:destBucketObj.objKey];
  20 + self.httpMethod = kHttpMethodPut;
  21 + self.contentMd5 = @"";
  22 + self.contentType = @"";
  23 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  24 + self.host = [NSString
  25 + stringWithFormat:@"%@://%@.%@",
  26 + [[KS3Client initialize] requestProtocol], self.bucket,
  27 + [[KS3Client initialize] getBucketDomain]];
  28 +
  29 + // ****
  30 + self.strSourceBucket = [self URLEncodedString:sourBucketObj.bucketName];
  31 + self.strSourceObject = [self URLEncodedString:sourBucketObj.objKey];
  32 + NSString *strValue = [NSString
  33 + stringWithFormat:@"/%@/%@", _strSourceBucket, _strSourceObject];
  34 + self.host = [NSString stringWithFormat:@"%@/%@", self.host, _key];
  35 + self.kSYResource =
  36 + [NSString stringWithFormat:@"%@/%@", self.kSYResource, _key];
  37 + }
  38 + return self;
  39 +}
  40 +
  41 +- (KS3URLRequest *)configureURLRequest {
  42 + NSString *strValue =
  43 + [NSString stringWithFormat:@"/%@/%@", _strSourceBucket, _strSourceObject];
  44 +
  45 + [super configureURLRequest];
  46 + [self.urlRequest setValue:strValue forHTTPHeaderField:@"x-kss-copy-source"];
  47 +
  48 + // **** header
  49 + if (nil != _xkssMetaDataDirective) {
  50 + [self.urlRequest setValue:_xkssMetaDataDirective
  51 + forHTTPHeaderField:@"x-kss-metadata-directive"];
  52 + }
  53 + if (nil != _xkssCopySourceIfMatch) {
  54 + [self.urlRequest setValue:_xkssCopySourceIfMatch
  55 + forHTTPHeaderField:@"x-kss-copy-source-if-match"];
  56 + }
  57 + if (nil != _xkssCopySourceIfNoneMatch) {
  58 + [self.urlRequest setValue:_xkssCopySourceIfNoneMatch
  59 + forHTTPHeaderField:@"x-kss-copy-source-if-none-match"];
  60 + }
  61 + if (nil != _xkssCopySourceIfUnmodifiedSince) {
  62 + [self.urlRequest setValue:_xkssCopySourceIfUnmodifiedSince
  63 + forHTTPHeaderField:@"x-kss-copy-source-if-unmodified-since"];
  64 + }
  65 + if (nil != _xkssCopySourceIfModifiedSince) {
  66 + [self.urlRequest setValue:_xkssCopySourceIfModifiedSince
  67 + forHTTPHeaderField:@"x-kss-copy-source-if-modified-since"];
  68 + }
  69 + if (nil != _xkssMeta) {
  70 + [self.urlRequest setValue:_xkssMeta forHTTPHeaderField:@"x-kss-meta-"];
  71 + }
  72 + if (nil != _xkssStorageClass) {
  73 + [self.urlRequest setValue:_xkssStorageClass
  74 + forHTTPHeaderField:@"x-kss-storage-class"];
  75 + }
  76 + if (nil != _xkssWebsiteRedirectLocation) {
  77 + [self.urlRequest setValue:_xkssWebsiteRedirectLocation
  78 + forHTTPHeaderField:@"x-kss-website-redirect-location"];
  79 + }
  80 +
  81 + // **** encryption header
  82 + if (nil != _xkssServerSideEncryption) {
  83 + [self.urlRequest setValue:_xkssServerSideEncryption
  84 + forHTTPHeaderField:@"x-kss-server-side-encryption"];
  85 + }
  86 + if (nil != _xkssServerSideEncryptionCustomerKey) {
  87 + [self.urlRequest setValue:_xkssServerSideEncryptionCustomerKey
  88 + forHTTPHeaderField:@"x-kss-server-side-encryption-customer-key"];
  89 + }
  90 + if (nil != _xkssServerSideEncryptionCustomerAlgorithm) {
  91 + [self.urlRequest
  92 + setValue:_xkssServerSideEncryptionCustomerAlgorithm
  93 + forHTTPHeaderField:@"x-kss-server-side-encryption-customer-algorithm"];
  94 + }
  95 + if (nil != _xkssServerSideEncryptionCustomerKeyMD5) {
  96 + [self.urlRequest setValue:_xkssServerSideEncryptionCustomerKeyMD5
  97 + forHTTPHeaderField:@"x-kss-server-side-encryption-customer-key-MD5"];
  98 + }
  99 +
  100 + if (nil != _xkssCopySourceServerSideEncryptionCustomerKey) {
  101 + [self.urlRequest setValue:_xkssCopySourceServerSideEncryptionCustomerKey
  102 + forHTTPHeaderField:
  103 + @"x-kss-copy-source-server-side-encryption-customer-key"];
  104 + }
  105 + if (nil != _xkssCopySourceServerSideEncryptionCustomerAlgorithm) {
  106 + [self.urlRequest
  107 + setValue:_xkssCopySourceServerSideEncryptionCustomerAlgorithm
  108 + forHTTPHeaderField:
  109 + @"x-kss-copy-source-server-side-encryption-customer-algorithm"];
  110 + }
  111 + if (nil != _xkssCopySourceServerSideEncryptionCustomerMD5) {
  112 + [self.urlRequest setValue:_xkssCopySourceServerSideEncryptionCustomerMD5
  113 + forHTTPHeaderField:
  114 + @"x-kss-copy-source-server-side-encryption-customer-key-MD5"];
  115 + }
  116 +
  117 + // **** acl
  118 + if (nil != _xkssAcl) {
  119 + [self.urlRequest setValue:_xkssAcl forHTTPHeaderField:@"x-kss-acl"];
  120 + }
  121 + return self.urlRequest;
  122 +}
  123 +
  124 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.h 0 → 100644
  1 +//
  2 +// KS3PutObjectCopyResponse.h
  3 +// KSYSDKDemo
  4 +//
  5 +// Created by Blues on 12/25/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3PutObjectCopyResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.m 0 → 100644
  1 +//
  2 +// KS3PutObjectCopyResponse.m
  3 +// KSYSDKDemo
  4 +//
  5 +// Created by Blues on 12/25/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3PutObjectCopyResponse.h"
  10 +
  11 +@implementation KS3PutObjectCopyResponse
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.h 0 → 100644
  1 +//
  2 +// KSS3PutObjectRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@class KS3AccessControlList;
  12 +@class KS3GrantAccessControlList;
  13 +
  14 +@interface KS3PutObjectRequest : KS3Request
  15 +
  16 +@property(nonatomic, strong) NSString *cacheControl;
  17 +@property(nonatomic, strong) NSString *contentDisposition;
  18 +@property(nonatomic, strong) NSString *contentEncoding;
  19 +@property(nonatomic, assign) BOOL generateMD5;
  20 +@property(nonatomic, strong) NSString *expect;
  21 +@property(nonatomic, strong) NSData *data;
  22 +@property(nonatomic, strong) NSInputStream *stream;
  23 +@property(nonatomic, assign, readonly) int64_t expires;
  24 +@property(nonatomic, strong) NSString *filename;
  25 +@property(nonatomic, strong) NSString *redirectLocation;
  26 +@property(nonatomic, strong) NSString *callbackUrl;
  27 +@property(nonatomic, strong) NSString *callbackBody;
  28 +@property(nonatomic, strong) NSDictionary *callbackParams;
  29 +@property(strong, nonatomic) KS3AccessControlList *acl;
  30 +@property(nonatomic, strong) NSArray *arrGrantAcl;
  31 +
  32 +- (instancetype)initWithName:(NSString *)bucketName
  33 + withAcl:(KS3AccessControlList *)acl
  34 + grantAcl:(NSArray *)arrGrantAcl;
  35 +
  36 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.m 0 → 100644
  1 +//
  2 +// KSS3PutObjectRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3PutObjectRequest.h"
  10 +#import "KS3AccessControlList.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +#import "KS3GrantAccessControlList.h"
  14 +#import "KS3SDKUtil.h"
  15 +@implementation KS3PutObjectRequest
  16 +
  17 +- (instancetype)initWithName:(NSString *)bucketName
  18 + withAcl:(KS3AccessControlList *)acl
  19 + grantAcl:(NSArray *)arrGrantAcl {
  20 + self = [super init];
  21 + if (self) {
  22 + self.bucket = [self URLEncodedString:bucketName];
  23 + self.httpMethod = kHttpMethodPut;
  24 + self.contentMd5 = nil;
  25 + self.contentType = @"application/octet-stream";
  26 + self.generateMD5 = YES;
  27 + self.acl = acl;
  28 + self.arrGrantAcl = arrGrantAcl;
  29 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  30 +
  31 + KS3Client *ks3Client = [KS3Client initialize];
  32 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  33 +
  34 + if (customBucketDomain != nil) {
  35 + self.host = [NSString
  36 + stringWithFormat:@"%@://%@", [[KS3Client initialize] requestProtocol],
  37 + customBucketDomain];
  38 + } else {
  39 + self.host = [NSString
  40 + stringWithFormat:@"%@://%@.%@",
  41 + [[KS3Client initialize] requestProtocol],
  42 + self.bucket,
  43 + [ks3Client
  44 + getBucketDomain]];
  45 + }
  46 + }
  47 + return self;
  48 +}
  49 +
  50 +- (void)sortGrantAcl {
  51 + NSMutableArray *arrAccessGrantAcl =
  52 + [[NSMutableArray alloc] initWithCapacity:0];
  53 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  54 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[i];
  55 + [arrAccessGrantAcl addObject:grantAcl.accessGrantACL];
  56 + }
  57 + NSSortDescriptor *descriptor =
  58 + [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES];
  59 + NSArray *descriptors = [NSArray arrayWithObject:descriptor];
  60 + NSArray *resultArray =
  61 + [arrAccessGrantAcl sortedArrayUsingDescriptors:descriptors];
  62 + NSMutableArray *arrGrantAcl = [[NSMutableArray alloc] initWithCapacity:0];
  63 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  64 + NSString *strAccessGrantAcl = resultArray[i];
  65 + for (NSInteger j = 0; j < _arrGrantAcl.count; j++) {
  66 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[j];
  67 + if ([grantAcl.accessGrantACL isEqualToString:strAccessGrantAcl] == YES) {
  68 + [arrGrantAcl addObject:grantAcl];
  69 + break;
  70 + }
  71 + }
  72 + }
  73 + self.arrGrantAcl = arrGrantAcl;
  74 +}
  75 +
  76 +- (void)setCompleteRequest {
  77 + [self.urlRequest setHTTPBody:_data];
  78 + [self.urlRequest setValue:self.contentType
  79 + forHTTPHeaderField:kKSHttpHdrContentType];
  80 +
  81 + if (_acl != nil) {
  82 + [self.urlRequest setValue:_acl.accessACL forHTTPHeaderField:@"x-kss-acl"];
  83 + }
  84 +
  85 + if (_arrGrantAcl != nil) {
  86 + for (NSInteger i = 0; i < _arrGrantAcl.count; i++) {
  87 + KS3GrantAccessControlList *grantAcl = _arrGrantAcl[i];
  88 + NSString *strValue =
  89 + [NSString stringWithFormat:@"id=\"%@\", ", grantAcl.identifier];
  90 + strValue = [strValue
  91 + stringByAppendingFormat:@"displayName=\"%@\"", grantAcl.displayName];
  92 + [self.urlRequest setValue:strValue
  93 + forHTTPHeaderField:grantAcl.accessGrantACL];
  94 + }
  95 + }
  96 +
  97 + if (nil != _callbackBody && nil != _callbackUrl) {
  98 + [self.urlRequest setValue:_callbackBody
  99 + forHTTPHeaderField:@"x-kss-callbackbody"];
  100 + [self.urlRequest setValue:_callbackUrl
  101 + forHTTPHeaderField:@"x-kss-callbackurl"];
  102 +
  103 + // **** 回调的自定义参数
  104 + if (nil != _callbackParams) {
  105 + for (NSString *strKey in _callbackParams.allKeys) {
  106 + if (strKey.length >= 4 &&
  107 + [[strKey substringToIndex:4] isEqualToString:@"kss-"] == YES) {
  108 + [self.urlRequest setValue:_callbackParams[strKey]
  109 + forHTTPHeaderField:strKey];
  110 + } else {
  111 + NSLog(@"The header with field: \"%@\" and value: \"%@\" is not "
  112 + @"cocrect, this header will be ingored",
  113 + strKey, _callbackParams[strKey]);
  114 + }
  115 + }
  116 + }
  117 + }
  118 + if (nil == self.contentMd5 && YES == self.generateMD5 && self.data != nil) {
  119 + self.contentMd5 = [KS3SDKUtil base64md5FromData:self.data];
  120 + }
  121 + [self.urlRequest setValue:self.contentMd5
  122 + forHTTPHeaderField:kKS3HttpHdrContentMD5];
  123 +
  124 + _filename = [self URLEncodedString:_filename];
  125 + self.kSYResource = [NSString stringWithFormat:@"%@/%@", self.kSYResource, _filename];
  126 +
  127 + self.host = [NSString stringWithFormat:@"%@/%@", self.host, _filename];
  128 +}
  129 +
  130 +- (KS3URLRequest *)configureURLRequest {
  131 +
  132 + [super configureURLRequest];
  133 + return self.urlRequest;
  134 +}
  135 +
  136 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.h 0 → 100644
  1 +//
  2 +// KSS3PutObjectResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3PutObjectResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.m 0 → 100644
  1 +//
  2 +// KSS3PutObjectResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3PutObjectResponse.h"
  10 +
  11 +@implementation KS3PutObjectResponse
  12 +- (void)processBody {
  13 +}
  14 +
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3SetObjectACLRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +@class KS3AccessControlList;
  11 +@interface KS3SetObjectACLRequest : KS3Request
  12 +
  13 +@property(strong, nonatomic) NSString *key;
  14 +
  15 +@property(strong, nonatomic) KS3AccessControlList *acl;
  16 +
  17 +- (instancetype)initWithName:(NSString *)bucketName
  18 + withKeyName:(NSString *)strKeyName
  19 + acl:(KS3AccessControlList *)acl;
  20 +
  21 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3SetObjectACLRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetObjectACLRequest.h"
  10 +#import "KS3AccessControlList.h"
  11 +#import "KS3Client.h"
  12 +#import "KS3Constants.h"
  13 +@implementation KS3SetObjectACLRequest
  14 +- (instancetype)initWithName:(NSString *)bucketName
  15 + withKeyName:(NSString *)strKeyName
  16 + acl:(KS3AccessControlList *)acl {
  17 + self = [super init];
  18 + if (self) {
  19 + self.bucket = [self URLEncodedString:bucketName];
  20 + self.key = [self URLEncodedString:strKeyName];
  21 + self.acl = acl;
  22 + self.httpMethod = kHttpMethodPut;
  23 + self.contentMd5 = @"";
  24 + self.contentType = @"";
  25 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  26 + self.host = @"";
  27 +
  28 + self.kSYResource =
  29 + [NSString stringWithFormat:@"%@/%@?acl", self.kSYResource, _key];
  30 + self.host = [NSString
  31 + stringWithFormat:@"%@://%@.%@/%@?acl",
  32 + [[KS3Client initialize] requestProtocol], self.bucket,
  33 + [[KS3Client initialize] getBucketDomain], _key];
  34 + }
  35 + return self;
  36 +}
  37 +- (KS3URLRequest *)configureURLRequest {
  38 + [super configureURLRequest];
  39 + [self.urlRequest setHTTPMethod:kHttpMethodPut];
  40 + [self.urlRequest setValue:_acl.accessACL forHTTPHeaderField:@"x-kss-acl"];
  41 + return self.urlRequest;
  42 +}
  43 +
  44 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3SetObjectACLResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3SetObjectACLResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3SetObjectACLResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetObjectACLResponse.h"
  10 +
  11 +@implementation KS3SetObjectACLResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.h 0 → 100644
  1 +//
  2 +// KSS3SetObjectGrantACLRequest.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@class KS3GrantAccessControlList;
  12 +
  13 +@interface KS3SetObjectGrantACLRequest : KS3Request
  14 +
  15 +@property(nonatomic, strong) KS3GrantAccessControlList *acl;
  16 +@property(nonatomic, strong) NSString *key;
  17 +
  18 +- (instancetype)initWithName:(NSString *)bucketName
  19 + withKeyName:(NSString *)strKeyName
  20 + grantAcl:(KS3GrantAccessControlList *)grantAcl;
  21 +
  22 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.m 0 → 100644
  1 +//
  2 +// KSS3SetObjectGrantACLRequest.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetObjectGrantACLRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3GrantAccessControlList.h"
  13 +
  14 +@implementation KS3SetObjectGrantACLRequest
  15 +
  16 +- (instancetype)initWithName:(NSString *)bucketName
  17 + withKeyName:(NSString *)strKeyName
  18 + grantAcl:(KS3GrantAccessControlList *)grantAcl {
  19 + self = [super init];
  20 + if (self) {
  21 + self.bucket = [self URLEncodedString:bucketName];
  22 + self.key = [self URLEncodedString:strKeyName];
  23 + self.acl = grantAcl;
  24 + self.httpMethod = kHttpMethodPut;
  25 + self.contentMd5 = @"";
  26 + self.contentType = @"";
  27 + self.kSYResource = [NSString stringWithFormat:@"/%@", self.bucket];
  28 + self.host = @"";
  29 +
  30 + //
  31 + self.kSYResource =
  32 + [NSString stringWithFormat:@"%@/%@?acl", self.kSYResource, _key];
  33 + self.host = [NSString
  34 + stringWithFormat:@"%@://%@.%@/%@?acl",
  35 + [[KS3Client initialize] requestProtocol], self.bucket,
  36 + [[KS3Client initialize] getBucketDomain], _key];
  37 + }
  38 + return self;
  39 +}
  40 +
  41 +- (KS3URLRequest *)configureURLRequest {
  42 + NSString *strValue =
  43 + [NSString stringWithFormat:@"id=\"%@\", ", _acl.identifier];
  44 + strValue = [strValue
  45 + stringByAppendingFormat:@"displayName=\"%@\"", _acl.displayName];
  46 + [super configureURLRequest];
  47 + [self.urlRequest setHTTPMethod:kHttpMethodPut];
  48 + [self.urlRequest setValue:strValue forHTTPHeaderField:_acl.accessGrantACL];
  49 +
  50 + return self.urlRequest;
  51 +}
  52 +
  53 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.h 0 → 100644
  1 +//
  2 +// KSS3SetObjectGrantACLResponse.h
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3SetObjectGrantACLResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.m 0 → 100644
  1 +//
  2 +// KSS3SetObjectGrantACLResponse.m
  3 +// KS3iOSSDKDemo
  4 +//
  5 +// Created by Blues on 12/18/14.
  6 +// Copyright (c) 2014 Blues. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3SetObjectGrantACLResponse.h"
  10 +
  11 +@implementation KS3SetObjectGrantACLResponse
  12 +
  13 +- (void)processBody {
  14 +}
  15 +
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.h 0 → 100644
  1 +//
  2 +// KS3Upload.h
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/5/4.
  6 +//
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +#import "KS3MultipartUpload.h"
  11 +
  12 +@interface KS3Upload : KS3MultipartUpload <NSCopying>
  13 +
  14 +@property (assign, nonatomic) NSInteger contentLength;
  15 +@property (assign, nonatomic) NSInteger blockSize;
  16 +@property (assign, nonatomic) NSInteger partCount;
  17 +
  18 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.m 0 → 100644
  1 +//
  2 +// KS3Upload.m
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/5/4.
  6 +//
  7 +//
  8 +
  9 +#import "KS3Upload.h"
  10 +
  11 +@implementation KS3Upload
  12 +
  13 +- (id)copyWithZone:(NSZone *)zone {
  14 + KS3Upload *copy = [[[self class] allocWithZone:zone] init];
  15 + copy.key = self.key;
  16 + copy.bucket = self.bucket;
  17 + copy.uploadId = self.uploadId;
  18 + copy.storageClass = self.storageClass;
  19 + copy.initiator = self.initiator;
  20 + copy.initiated = self.initiated;
  21 + copy.contentLength = self.contentLength;
  22 + copy.blockSize = self.blockSize;
  23 + copy.partCount = self.partCount;
  24 + return copy;
  25 +}
  26 +
  27 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.h 0 → 100644
  1 +//
  2 +// KSS3UploadPartRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3MultipartUpload.h"
  10 +#import "KS3Request.h"
  11 +
  12 +@interface KS3UploadPartRequest : KS3Request
  13 +
  14 +@property(nonatomic, strong) NSString *expect;
  15 +
  16 +@property(nonatomic, assign) int32_t partNumber;
  17 +@property(nonatomic, assign) BOOL generateMD5;
  18 +@property(nonatomic, strong) NSString *uploadId;
  19 +@property(nonatomic, strong) NSData *data;
  20 +@property(nonatomic, strong) NSString *key;
  21 +@property(strong, nonatomic) KS3MultipartUpload *multipartUpload;
  22 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload
  23 + partNumber:(int32_t)partNumber
  24 + data:(NSData *)data
  25 + generateMD5:(BOOL)generateMD5;
  26 +
  27 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.m 0 → 100644
  1 +//
  2 +// KSS3UploadPartRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3UploadPartRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +#import "KS3SDKUtil.h"
  13 +@interface KS3UploadPartRequest ()
  14 +
  15 +@end
  16 +
  17 +@implementation KS3UploadPartRequest
  18 +
  19 +- (id)initWithMultipartUpload:(KS3MultipartUpload *)multipartUpload
  20 + partNumber:(int32_t)partNumber
  21 + data:(NSData *)data
  22 + generateMD5:(BOOL)generateMD5 {
  23 + if (self = [super init]) {
  24 + self.bucket = [self URLEncodedString:multipartUpload.bucket];
  25 + self.key = [self URLEncodedString:multipartUpload.key];
  26 + self.uploadId = multipartUpload.uploadId;
  27 + _data = data;
  28 + _partNumber = partNumber;
  29 + _generateMD5 = generateMD5;
  30 + self.contentMd5 = nil;
  31 + _generateMD5 = YES;
  32 + _multipartUpload = multipartUpload;
  33 + self.contentType = @"binary/octet-stream";
  34 + self.httpMethod = kHttpMethodPut;
  35 +
  36 + KS3Client *ks3Client = [KS3Client initialize];
  37 + NSString *customBucketDomain = [ks3Client getCustomBucketDomain];
  38 +
  39 + if (customBucketDomain != nil) {
  40 + self.host =
  41 + [NSString stringWithFormat:@"%@://%@/%@?partNumber=%d&uploadId=%@",
  42 + [[KS3Client initialize] requestProtocol],
  43 + customBucketDomain, _key, _partNumber,
  44 + _multipartUpload.uploadId];
  45 + } else {
  46 + self.host = [NSString
  47 + stringWithFormat:@"%@://%@.%@/%@?partNumber=%d&uploadId=%@",
  48 + [[KS3Client initialize] requestProtocol],
  49 + self.bucket, [ks3Client getBucketDomain], _key,
  50 + _partNumber, _multipartUpload.uploadId];
  51 + }
  52 +
  53 + if (nil == self.contentMd5 && YES == self.generateMD5 && self.data != nil) {
  54 + self.contentMd5 = [KS3SDKUtil base64md5FromData:self.data];
  55 + }
  56 + self.kSYResource =
  57 + [NSString stringWithFormat:@"/%@/%@?%@=%d&%@=%@", self.bucket, self.key,
  58 + kKS3QueryParamPartNumber, self.partNumber,
  59 + kKS3QueryParamUploadId, self.uploadId];
  60 + }
  61 +
  62 + return self;
  63 +}
  64 +
  65 +- (NSMutableURLRequest *)configureURLRequest {
  66 +
  67 + [super configureURLRequest];
  68 + if (self.contentLength < 1) {
  69 + self.contentLength = [self.data length];
  70 + }
  71 + [self.urlRequest setValue:[NSString
  72 + stringWithFormat:@"%lu",
  73 + (unsigned long)[
  74 + [self.urlRequest HTTPBody]
  75 + length]]
  76 + forHTTPHeaderField:kKSHttpHdrContentLength];
  77 + if (self.data != nil) {
  78 + [self.urlRequest setHTTPBody:self.data];
  79 + }
  80 + if (nil != self.contentMd5) {
  81 + [self.urlRequest setValue:self.contentMd5
  82 + forHTTPHeaderField:kKS3HttpHdrContentMD5];
  83 + }
  84 + if (nil != _expect) {
  85 + [self.urlRequest setValue:_expect forHTTPHeaderField:@"Expect"];
  86 + }
  87 + [self.urlRequest setValue:self.contentType
  88 + forHTTPHeaderField:kKSHttpHdrContentType];
  89 + return self.urlRequest;
  90 +}
  91 +
  92 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.h 0 → 100644
  1 +//
  2 +// KSS3UploadPartResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +
  11 +@interface KS3UploadPartResponse : KS3Response
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.m 0 → 100644
  1 +//
  2 +// KSS3UploadPartResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/15/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3UploadPartResponse.h"
  10 +
  11 +@implementation KS3UploadPartResponse
  12 +- (void)processBody {
  13 +}
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.h 0 → 100644
  1 +//
  2 +// KS3UploadRequest.h
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/5/4.
  6 +//
  7 +//
  8 +
  9 +#import "KS3InitiateMultipartUploadRequest.h"
  10 +
  11 +@interface KS3UploadRequest : KS3InitiateMultipartUploadRequest
  12 +
  13 +- (id)initWithKey:(NSString *)aKey
  14 + inBucket:(NSString *)aBucket
  15 + acl:(KS3AccessControlList *)acl
  16 + grantAcl:(NSArray *)arrGrantAcl;
  17 +
  18 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.m 0 → 100644
  1 +//
  2 +// KS3UploadRequest.m
  3 +// Pods
  4 +//
  5 +// Created by Sun Peng on 2017/5/4.
  6 +//
  7 +//
  8 +
  9 +#import "KS3UploadRequest.h"
  10 +
  11 +@implementation KS3UploadRequest
  12 +
  13 +- (id)initWithKey:(NSString *)aKey inBucket:(NSString *)aBucket acl:(KS3AccessControlList *)acl grantAcl:(NSArray *)arrGrantAcl {
  14 + if (self = [super initWithKey:aKey inBucket:aBucket acl:acl grantAcl:arrGrantAcl]) {
  15 + }
  16 +
  17 + return self;
  18 +}
  19 +
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.h 0 → 100644
  1 +//
  2 +// KSS3Buckket.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +
  11 +@interface KS3Bucket : NSObject
  12 +
  13 +@property(strong, nonatomic) NSString *name;
  14 +@property(strong, nonatomic) NSString *creationDate;
  15 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.m 0 → 100644
  1 +//
  2 +// KSS3Buckket.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Bucket.h"
  10 +
  11 +@implementation KS3Bucket
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.h 0 → 100644
  1 +//
  2 +// S3ListBucketsRequest.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Request.h"
  10 +
  11 +@interface KS3ListBucketsRequest : KS3Request
  12 +
  13 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.m 0 → 100644
  1 +//
  2 +// S3ListBucketsRequest.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListBucketsRequest.h"
  10 +#import "KS3Client.h"
  11 +#import "KS3Constants.h"
  12 +@implementation KS3ListBucketsRequest
  13 +
  14 +- (instancetype)init {
  15 + self = [super init];
  16 + if (self) {
  17 + self.httpMethod = kHttpMethodGet;
  18 + self.contentMd5 = @"";
  19 + self.contentType = @"";
  20 + self.kSYResource = @"/";
  21 + self.host = [NSString
  22 + stringWithFormat:@"%@://%@", [[KS3Client initialize] requestProtocol],
  23 + [[KS3Client initialize] getBucketDomain]];
  24 + }
  25 + return self;
  26 +}
  27 +
  28 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.h 0 → 100644
  1 +//
  2 +// S3ListBucketsResponse.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3Response.h"
  10 +@class KS3ListBucketsResult;
  11 +@interface KS3ListBucketsResponse : KS3Response
  12 +
  13 +@property(nonatomic, strong) KS3ListBucketsResult *listBucketsResult;
  14 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.m 0 → 100644
  1 +//
  2 +// S3ListBucketsResponse.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/9/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListBucketsResponse.h"
  10 +#import "KS3Bucket.h"
  11 +#import "KS3ListBucketsXMLParser.h"
  12 +@implementation KS3ListBucketsResponse
  13 +
  14 +- (void)processBody {
  15 + KS3ListBucketsXMLParser *xmlParser = [[KS3ListBucketsXMLParser alloc] init];
  16 + [xmlParser kSS3XMLarse:body];
  17 + _listBucketsResult = xmlParser.listBuctkResult;
  18 +}
  19 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.h 0 → 100644
  1 +//
  2 +// KSS3ListBucketsResult.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import <Foundation/Foundation.h>
  10 +@class KS3Owner;
  11 +
  12 +@interface KS3ListBucketsResult : NSObject
  13 +
  14 +@property(nonatomic, strong) KS3Owner *owner;
  15 +@property(nonatomic, strong) NSMutableArray *buckets;
  16 +
  17 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.m 0 → 100644
  1 +//
  2 +// KSS3ListBucketsResult.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListBucketsResult.h"
  10 +
  11 +@implementation KS3ListBucketsResult
  12 +
  13 +- (instancetype)init {
  14 + self = [super init];
  15 + if (self) {
  16 + _buckets = [[NSMutableArray alloc] init];
  17 + }
  18 + return self;
  19 +}
  20 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.h 0 → 100644
  1 +//
  2 +// KSS3ListBucketsXMLParser.h
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListBucketsResult.h"
  10 +#import "KS3Owner.h"
  11 +#import <Foundation/Foundation.h>
  12 +
  13 +@interface KS3ListBucketsXMLParser : NSObject <NSXMLParserDelegate>
  14 +@property(strong, nonatomic) KS3ListBucketsResult *listBuctkResult;
  15 +- (void)kSS3XMLarse:(NSData *)dataXml;
  16 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.m 0 → 100644
  1 +//
  2 +// KSS3ListBucketsXMLParser.m
  3 +// KS3SDK
  4 +//
  5 +// Created by JackWong on 12/11/14.
  6 +// Copyright (c) 2014 kingsoft. All rights reserved.
  7 +//
  8 +
  9 +#import "KS3ListBucketsXMLParser.h"
  10 +#import "KS3Bucket.h"
  11 +#import "KS3Owner.h"
  12 +@interface KS3ListBucketsXMLParser ()
  13 +@property(strong, nonatomic) NSMutableString *currentTag;
  14 +@property(strong, nonatomic) NSMutableString *currentText;
  15 +@property(strong, nonatomic) KS3Bucket *bucket;
  16 +@end
  17 +
  18 +@implementation KS3ListBucketsXMLParser
  19 +
  20 +- (void)kSS3XMLarse:(NSData *)dataXml {
  21 + NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dataXml];
  22 + [parser setDelegate:self];
  23 + [parser parse];
  24 +}
  25 +
  26 +#pragma mark - Xml delegate
  27 +
  28 +- (void)parserDidStartDocument:(NSXMLParser *)parser {
  29 + _listBuctkResult = [[KS3ListBucketsResult alloc] init];
  30 +}
  31 +
  32 +- (void)parser:(NSXMLParser *)parser
  33 + didStartElement:(NSString *)elementName
  34 + namespaceURI:(NSString *)namespaceURI
  35 + qualifiedName:(NSString *)qName
  36 + attributes:(NSDictionary *)attributeDict {
  37 + if (nil != _currentText) {
  38 + _currentText = nil;
  39 + }
  40 +
  41 + if ([elementName isEqualToString:@"Owner"]) {
  42 + _listBuctkResult.owner = [KS3Owner new];
  43 + }
  44 + if ([elementName isEqualToString:@"Bucket"]) {
  45 + if (nil != _bucket) {
  46 + _bucket = nil;
  47 + }
  48 + _bucket = [KS3Bucket new];
  49 + }
  50 +}
  51 +
  52 +- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
  53 + if (nil == _currentText) {
  54 + _currentText = [[NSMutableString alloc] init];
  55 + }
  56 + [_currentText appendString:string];
  57 +}
  58 +
  59 +- (void)parser:(NSXMLParser *)parser
  60 + didEndElement:(NSString *)elementName
  61 + namespaceURI:(NSString *)namespaceURI
  62 + qualifiedName:(NSString *)qName {
  63 + if ([elementName isEqualToString:@"ID"]) {
  64 + _listBuctkResult.owner.ID = _currentText;
  65 + }
  66 + if ([elementName isEqualToString:@"DisplayName"]) {
  67 + _listBuctkResult.owner.displayName = _currentText;
  68 + }
  69 +
  70 + if ([elementName isEqualToString:@"Name"]) {
  71 + _bucket.name = _currentText;
  72 + }
  73 + if ([elementName isEqualToString:@"CreationDate"]) {
  74 + _bucket.creationDate = _currentText;
  75 + }
  76 + if ([elementName isEqualToString:@"Bucket"]) {
  77 + [_listBuctkResult.buckets addObject:_bucket];
  78 + _bucket = nil;
  79 + }
  80 +}
  81 +
  82 +- (void)parserDidEndDocument:(NSXMLParser *)parser {
  83 +}
  84 +
  85 +- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock {
  86 +}
  87 +
  88 +@end
... ...
KS3SDKDemo/Pods/Ks3SDK/LICENSE 0 → 100644
  1 +Copyright (c) 2017 Kingsoft.
  2 +
  3 +Licensed under the Apache License, Version 2.0 (the "License");
  4 +you may not use this file except in compliance with the License.
  5 +You may obtain a copy of the License at
  6 +
  7 + http://www.apache.org/licenses/LICENSE-2.0
  8 +
  9 + Unless required by applicable law or agreed to in writing, software
  10 + distributed under the License is distributed on an "AS IS" BASIS,
  11 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12 + See the License for the specific language governing permissions and
  13 + limitations under the License.
... ...
KS3SDKDemo/Pods/Ks3SDK/README.md 0 → 100644
  1 +# KS3 SDK for iOS
  2 +
  3 +## 安装
  4 +
  5 +通过 CocoaPods
  6 +
  7 +```ruby
  8 +pod "Ks3SDK", "~> 2.0.0"
  9 +```
  10 +
  11 +## 使用方法
  12 +
  13 +首先需要初始化KS3Client。可以利用AccessKeyID、AccessKeySecret初始化(由于AccessKeySecret要放在客户端,因此不安全,仅建议测试时使用),代码如下:
  14 +
  15 +```Objective-C
  16 +
  17 + [[KS3Client initialize] connectWithAccessKey:strAccessKey withSecretKey:strSecretKey];
  18 +
  19 +```
  20 +
  21 +第二种方式利用token进行请求,每次需要调用SDK的API时都需要使用请求一次token,然后用这个token初始化KS3Request的strKS3Token,再进行API请求(推荐使用),对应的代码如下:
  22 +
  23 +```Objective-C
  24 +
  25 + [YourAppServer sendAsynchronousRequest:tokenRequest queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
  26 + if (connectionError == nil) {
  27 + NSString *strToken = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  28 + ks3Request.strKS3Token = strToken; // 设置Token
  29 + [[KS3Client initialize] listBuckets:(KS3ListBucketsRequest *)listBucketRequest]; // 调用KS3 API接口
  30 + // 剩余处理
  31 + }
  32 + else {
  33 + // 错误处理
  34 + }
  35 + }];
  36 +
  37 +```
  38 +
  39 +服务端签名计算方法参考:[API接口文档](https://docs.ksyun.com/read/latest/65/_book/index.html)
  40 +
  41 +API详细使用方法参考 [使用文档](https://github.com/ks3sdk/ks3-ios-sdk/blob/master/Docs/Usage.md)
  42 +
  43 +## 示例代码
  44 +* 完整的demo 见 KS3SDKDemo 目录下的代码
  45 +
  46 +## 代码许可
  47 +Apache License, Version 2.0。详情见 [License 文件](https://github.com/ks3sdk/ks3-ios-sdk/blob/master/master/LICENSE).
... ...
KS3SDKDemo/Pods/Manifest.lock 0 → 100644
  1 +PODS:
  2 + - Ks3SDK (2.1.2)
  3 +
  4 +DEPENDENCIES:
  5 + - Ks3SDK (~> 2.1.2)
  6 +
  7 +SPEC CHECKSUMS:
  8 + Ks3SDK: 618377e9a5e058f41300812ef43cca69b49f20f4
  9 +
  10 +PODFILE CHECKSUM: 452e6c12f4104b6be74790ccc8dfbd2a937cba81
  11 +
  12 +COCOAPODS: 1.1.1
... ...
KS3SDKDemo/Pods/Pods.xcodeproj/project.pbxproj 0 → 100644
  1 +// !$*UTF8*$!
  2 +{
  3 + archiveVersion = 1;
  4 + classes = {
  5 + };
  6 + objectVersion = 46;
  7 + objects = {
  8 +
  9 +/* Begin PBXBuildFile section */
  10 + 008868B2721F7DCB6ED5C9C3FCB9AB48 /* KS3BucketACLXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E2B230F4D37F9B5F161265B9F1863F7 /* KS3BucketACLXMLParser.m */; };
  11 + 01948084A8F457F061FB904C61E04383 /* KS3ListBucketsXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 00287004427A15D6DA7565F3A8349C5A /* KS3ListBucketsXMLParser.m */; };
  12 + 051794912FED434CC1163510B7A6D676 /* KS3GetObjectACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 64415A03B1B28D135076F56E564E3521 /* KS3GetObjectACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  13 + 05F4B66023414AD51B3FEE40714BCF4F /* KS3DeleteObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 00295F843D77BC9DD7E95BBC91A2ECAB /* KS3DeleteObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  14 + 07AEBC2389175051896455B26204F5BA /* KS3CompleteMultipartUploadResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 339DD48EDBEBAE45A87E3B99CA35AB89 /* KS3CompleteMultipartUploadResult.m */; };
  15 + 0C3967D19181AB774C5572162800C444 /* KS3CompleteMultipartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = AEED845619E1065E85AB1808033F6AD8 /* KS3CompleteMultipartUploadRequest.m */; };
  16 + 0D22ECE4ECBB2C6423E7EAB99F7A9669 /* KS3GetObjectACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = AC8C95552C1C5E9491548EEB2E49CF6D /* KS3GetObjectACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  17 + 0E895C2FD29006B1CACC8D01DB6CA546 /* KS3HeadBucketRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 707CCF0D13833B92FEE73B8136FCCC30 /* KS3HeadBucketRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  18 + 103B89B3F71B8569765255AFEFC02537 /* KS3CompleteMultipartUploadResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 542AAF95AF0DD2C1F46BF827FB276303 /* KS3CompleteMultipartUploadResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  19 + 11120D05D691D144464423BE51577081 /* KS3Part.m in Sources */ = {isa = PBXBuildFile; fileRef = 485738248A9631FDBA098B4A9079EE5F /* KS3Part.m */; };
  20 + 11B693CF4E9D98F66347EF9FC6079BC1 /* KS3ListBucketsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DEBA81D6EAEF27E1A690CF02D9ACAA01 /* KS3ListBucketsResult.m */; };
  21 + 11C3E39E8F39F4E52847D6C916A30D67 /* KS3BucketNameUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF17755770A04CFED26AF90177EF022 /* KS3BucketNameUtilities.m */; };
  22 + 153DE3EDD35451B5190821B9886D49FA /* KS3SetBucketLoggingResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = FBA9C400556C6AC7A548E483CB376026 /* KS3SetBucketLoggingResponse.m */; };
  23 + 16466EEEFA022707C0933A524F3D8737 /* KS3ListObjectsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 0977D0682351BF0B28C4D912B0B5F7E9 /* KS3ListObjectsResponse.m */; };
  24 + 188D87A57EEF31E66DDA6224D467C6D8 /* KS3GrantAccessControlList.h in Headers */ = {isa = PBXBuildFile; fileRef = 351C95E9B5210C3A34F7DE45926B3C3D /* KS3GrantAccessControlList.h */; settings = {ATTRIBUTES = (Public, ); }; };
  25 + 1BF1DFF4968A6E2F271522B5E8143628 /* KS3AccessControlList.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E83D8FB93E7C4899F979A5C6CD5CDF /* KS3AccessControlList.m */; };
  26 + 1F1AE82285C0AB1E89275017C861D53C /* KS3UploadManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8773222E674FA91A1813B10C090A0DB4 /* KS3UploadManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
  27 + 2456F167BF900A7FA1DB1DA42D9C8C0A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; };
  28 + 2548BB104AF4F52BAC1E3FD918F2420A /* KS3ListObjectsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3058D771BD76D0B6F184E484D39DF70E /* KS3ListObjectsResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  29 + 26417D39932C9AB284BB286CD7C4B5A0 /* KS3SDKUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B8F46222934E72D700B438C1D605F35 /* KS3SDKUtil.m */; };
  30 + 270CFB5E729B040BB8C3B38AF815D89E /* KS3ListBucketsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A093453D3C973CA86362A56018762E18 /* KS3ListBucketsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  31 + 28E5F70B2025F122F5329BDA941E0B1F /* KS3SetBucketLoggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD2147A9F4106CD969BE5936BFFB335 /* KS3SetBucketLoggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  32 + 2953496CC2B22D67BDFFC6363C6D2BD5 /* KS3SetObjectGrantACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 74D09221BF115067D6DC96A4EECB086B /* KS3SetObjectGrantACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  33 + 2C49E0CE304DC27F183A794CCDAAECA9 /* KS3DeleteBucketRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 96DEEAC9F61E6BA0CCE9518F22C17736 /* KS3DeleteBucketRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  34 + 2D3D19C92173BA322AB33D607911E5B9 /* KS3ListPartsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC90C081A79C6C117FEC89896C93E7E /* KS3ListPartsResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  35 + 2E9DD306EF25908CA1124BCB14D83E88 /* KS3CompleteMultipartUploadResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B7761ADA6F116A75243AA0D8AAA3102 /* KS3CompleteMultipartUploadResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  36 + 30AA763D3EF397551B2EA6A1F1E32A80 /* KS3UploadPartResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8233887A30932FF0F5BD7E7E96ACC4F8 /* KS3UploadPartResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  37 + 31AD55F6B5C6960CE74D998C224D9C6C /* KS3SDKUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 54292A0659DF5EE135999ADD04C57E29 /* KS3SDKUtil.h */; settings = {ATTRIBUTES = (Public, ); }; };
  38 + 356E5FEEAF7CC7FD4254E12A831E41F9 /* KS3SetBucketLoggingResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = D74205DA028EC7C34C6C06265BF46F6F /* KS3SetBucketLoggingResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  39 + 35A93338A891A6E965BC9FFBEA5D25D2 /* KS3DeleteObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 234B282D8871514861EE0AF095BABDCB /* KS3DeleteObjectRequest.m */; };
  40 + 371590B0DC3F7D5BE845BCC3666B99D8 /* KS3InitiateMultipartUploadResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A0C050B5ED769338F44C4620C1CEB71 /* KS3InitiateMultipartUploadResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  41 + 38453479795FF05B69AC99CF2C5ED8CF /* KS3SetGrantACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A7E2AE75FF78B200909055607835FA7 /* KS3SetGrantACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  42 + 3D08B96D98B5073CD48F124860C87CFE /* KS3InitiateMultipartUploadResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 61250E7FD2917E7D7318618FEBBBAA77 /* KS3InitiateMultipartUploadResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  43 + 3E4727A23BB5B909C2FD9E754CB3D147 /* KS3GetACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E2873AB05A9756074CC9BB3BD472FC /* KS3GetACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  44 + 3F24120D4A65EC13254033ABCA67CB32 /* KS3Owner.h in Headers */ = {isa = PBXBuildFile; fileRef = 1115EFC72E20133ABC81DEEAA8E11D01 /* KS3Owner.h */; settings = {ATTRIBUTES = (Public, ); }; };
  45 + 3FB707428B633241710AA92AADA2FEBE /* KS3Grant.m in Sources */ = {isa = PBXBuildFile; fileRef = 8808028D324FD3153F27C4889282B0D8 /* KS3Grant.m */; };
  46 + 433FD702832D6AB60A8AE996DFC18953 /* KS3UploadPartRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 76FAB5EEAF325B51B13B562249C466CA /* KS3UploadPartRequest.m */; };
  47 + 43A947FEF60F6DBF945378B12A0B846B /* KS3ErrorHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA566B3488C468C24B73B3B291FEED3 /* KS3ErrorHandler.m */; };
  48 + 43D5E360B5E35E618E956AE81021BA4D /* KS3HeadBucketResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C72BD2304D746A3D2F5932A55C2A547C /* KS3HeadBucketResponse.m */; };
  49 + 44223920689569EE8E1D57F067F78CE1 /* KS3CompleteMultipartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F2045FA41767555C205538C73B8368 /* KS3CompleteMultipartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  50 + 451F69AD4B810140901BBFB2EA5E21BE /* KS3CompleteMultipartUploadResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 54FDB2CCE959195E52AE7D09B58BFB53 /* KS3CompleteMultipartUploadResponse.m */; };
  51 + 462141CAF4C85CEBCBFEE97A8B0ECA3D /* KS3ListPartsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6592191393193A4B15033D8F88CB8C2E /* KS3ListPartsResponse.m */; };
  52 + 465A067849770365903B8DE5B9183A9E /* KS3MultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FE40DEE975EC9B8F5D5B6AB9ABD6C1A /* KS3MultipartUpload.m */; };
  53 + 46E592F5CBFA4BE0264328314F345FFA /* KS3CreateBucketResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 59B243FFE0CCB104C821B80BCEB6D27B /* KS3CreateBucketResponse.m */; };
  54 + 47A1B194E4E18AD0F1D5EAAF30EBDE63 /* KS3ServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F24D60B09D175A5FE5867D7A4EA7348 /* KS3ServiceResponse.m */; };
  55 + 49567FCFE3B56F9D4518D176A7376970 /* KS3UploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 629C5CAEB0A9C75C840A528924375652 /* KS3UploadRequest.m */; };
  56 + 498FC8D3E4CCB9EFA75310A92BC0EF47 /* KS3ListObjectsXMLPrarser.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A1FA245D8885C7C99EFF823320F789D /* KS3ListObjectsXMLPrarser.m */; };
  57 + 4A3ACC77D3C8CDC06CDFFECC7E673F5C /* KS3InitiateMultipartUploadResult.m in Sources */ = {isa = PBXBuildFile; fileRef = C3E5644AB833D45595984EBC6F10193D /* KS3InitiateMultipartUploadResult.m */; };
  58 + 4B9E921706C47D7D82835645B144F79F /* KS3GetObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1867F5F806278E892F6EA26144A3246B /* KS3GetObjectRequest.m */; };
  59 + 4FCBEA2543FE53BFA1E22193C8EFD9D4 /* KS3PutObjectCopyResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C97A99A9950F068090AF8CB39E2EA215 /* KS3PutObjectCopyResponse.m */; };
  60 + 50892CCCAED4409239D1DD86BAB6B409 /* KS3Owner.m in Sources */ = {isa = PBXBuildFile; fileRef = 273BE8FAD908E5970FF2A827A862E08B /* KS3Owner.m */; };
  61 + 515585CB92C12CAA99FAAB3776E5155C /* KS3ListPartsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B96479C67EF97D9ACC28889965607759 /* KS3ListPartsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  62 + 51C2BB487FE09097F9993EEC2F87B49F /* KS3DeleteObjectResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 76D8C2BBF84A2BBF0580CF0DFB99B186 /* KS3DeleteObjectResponse.m */; };
  63 + 525797A3745DEBC2B675BC762A27E458 /* KS3PutObjectCopyResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EB2EAB425C265479580AC4444F4851E /* KS3PutObjectCopyResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  64 + 5679A2BBFC0446829FBD03E447857E78 /* KS3InitiateMultipartUploadXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 80CCC2E8A8057A24DC291F47BF9FAE0A /* KS3InitiateMultipartUploadXMLParser.m */; };
  65 + 56AF8DA79381D7E7C84670C8CC23DBA3 /* KS3Client.h in Headers */ = {isa = PBXBuildFile; fileRef = F9DAC33982A721A6E552050849069E43 /* KS3Client.h */; settings = {ATTRIBUTES = (Public, ); }; };
  66 + 5A47100F9AA70EC4DECD951136ACAB87 /* KS3DownLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F3C1E0EC8FC9E1969C04941E8522905 /* KS3DownLoad.h */; settings = {ATTRIBUTES = (Public, ); }; };
  67 + 5C136AC28C6066B49BF78EF30861D62C /* KS3ObjectSummary.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DF8A004C752608C3E8128C2C9D917A3 /* KS3ObjectSummary.h */; settings = {ATTRIBUTES = (Public, ); }; };
  68 + 5C782CD78F5BE7988749B27D879C34E2 /* KS3ListPartsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B16C8B97FA01C5066E22A3EE4F58E829 /* KS3ListPartsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  69 + 6040B04A329CB40C7CC580140EB9FC6E /* KS3SetObjectACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C5801DC0391BFD12B6F11800960BB93D /* KS3SetObjectACLResponse.m */; };
  70 + 6063D98285C27F4E2AD9263BDCB19634 /* KS3GetACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EB08EB9471E2DF0F7660DEF8C9F9A5C8 /* KS3GetACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  71 + 613248DC8129F0B8AA558A1E609CEF7E /* KS3ListBucketsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A71A824849284998716A12F60D91893 /* KS3ListBucketsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  72 + 617A42231C903E2B332D7B7633B3C590 /* KS3SetGrantACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E5DCC6DF4B43135E32980CBC6AB111DC /* KS3SetGrantACLResponse.m */; };
  73 + 61EADC4B17584325F98459D311420E73 /* KS3AccessControlList.h in Headers */ = {isa = PBXBuildFile; fileRef = E4F72772BF85572BC9FE0BBA2F6BD120 /* KS3AccessControlList.h */; settings = {ATTRIBUTES = (Public, ); }; };
  74 + 620A654738585101C7C381DDBBF7350D /* KS3GetACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 58A13081230750338D08FB45DC93CE89 /* KS3GetACLRequest.m */; };
  75 + 66E05417F3A6FE348A245BE937978EBB /* KS3ObjectSummary.m in Sources */ = {isa = PBXBuildFile; fileRef = FFCA8E5B9B88BEC11825277F8C75FB7B /* KS3ObjectSummary.m */; };
  76 + 67112CD60D5A0DF9ACC6362F78EF8842 /* KS3URLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E8E77D7FD08F866E3CEA5E7B00E1B9 /* KS3URLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  77 + 673DCE267712A522F66049908DD8D396 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */; };
  78 + 6D8AF4D84C301DC077DD9601605C5A08 /* KS3ListBucketsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = EF0280A7CEEE7C30913D583B01A8D425 /* KS3ListBucketsRequest.m */; };
  79 + 6E520229A7D475B3350F548E568EFD5C /* KS3ListObjectsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8094F5D8A1535493B770D6FCED7B95BD /* KS3ListObjectsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  80 + 6E92E14B09638CCE79650F5A3B627D4F /* KS3Response.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7913C5BC1BC9E4F99FBD572C86B037 /* KS3Response.m */; };
  81 + 6F74EDC9C921BF0EAC162701A38BE66C /* KS3GetObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AB06D81E6FBC1A461D417713ABEA86D /* KS3GetObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  82 + 7073EFF2BF6475F4FEDCEFE0118EA2DE /* KS3Upload.m in Sources */ = {isa = PBXBuildFile; fileRef = F6E8E720063F2E7543ED9B22A56B5CF3 /* KS3Upload.m */; };
  83 + 7074DB63067F9D6C657D7D946F33105F /* KS3ServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 011FE3858F6FACB9C85D985FF62F24A1 /* KS3ServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  84 + 715B37EE4CF81A0A00ECF8F92948A23D /* KS3UploadPartResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A639F773BB0039F8A95DDFFC8756374 /* KS3UploadPartResponse.m */; };
  85 + 72CD5D1D26A8AC427E58E7515017CF45 /* KS3GetBucketLoggingResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C96C5EDE45F128555DFDFA6993AEA2 /* KS3GetBucketLoggingResponse.m */; };
  86 + 73B4002909669BC54B57587F553BC0C4 /* KS3UploadManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F9F7DB8941940A32A6C254CDDD038DB /* KS3UploadManager.m */; };
  87 + 73E168F9B0C38910F7A022166034145B /* KS3AbortMultipartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = DED26E39303371C2ECF4F8B676C524AF /* KS3AbortMultipartUploadRequest.m */; };
  88 + 753F593C42A711A80330B700869305F9 /* KS3ObjectACLXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 488E7972F0E14B2A8A18F5BA53B8057D /* KS3ObjectACLXMLParser.m */; };
  89 + 774D3FEC8BE7A1AC1D712F7053D4D0C0 /* KS3ClientException.m in Sources */ = {isa = PBXBuildFile; fileRef = 3001A5B02820A7685EBB5E772B44F6B5 /* KS3ClientException.m */; };
  90 + 7794D5A8BCF03913691E5E10B9F91065 /* KS3GrantAccessControlList.m in Sources */ = {isa = PBXBuildFile; fileRef = 81384540B73C340C0884E7A0FE88A1C1 /* KS3GrantAccessControlList.m */; };
  91 + 788B9161E18ABEF211BFA25C922603C0 /* KS3HeadObjectResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C7AA6C3C38545F5C337E0B529E4E33E5 /* KS3HeadObjectResponse.m */; };
  92 + 7B3CC1862BDA191A304EB27D90AED795 /* KS3AbortMultipartUploadResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = F0DF090507CC6403A409EC77D60A4116 /* KS3AbortMultipartUploadResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  93 + 7B3E497E577F149784683971D5C7C0F6 /* KS3ServiceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 096AE6267B0879DD5DA6EF833BDE1BEC /* KS3ServiceRequest.m */; };
  94 + 7DB204122DBAC1C4F5EFD0087AC5CD3E /* KS3ServiceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4CCAA5E766727CF93F180382B97900 /* KS3ServiceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  95 + 7F0B11A5EBFA26251F0713C9B3F63DEE /* KS3BucketNameUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = F1CDEF207D2C172601BC300EBC1BF692 /* KS3BucketNameUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
  96 + 7F35A988BE2995B8699907C7E5ED9C43 /* KS3WebServiceClient.h in Headers */ = {isa = PBXBuildFile; fileRef = DC506D7CD3F3692CB65424E69B32EF4D /* KS3WebServiceClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
  97 + 80DD22A549B117BB1385F4FB70847833 /* KS3UploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DD45A0B978555EC844787A8BF56573E1 /* KS3UploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  98 + 82AEA10E1B48219980FCC31C3F59A87D /* KS3CreateBucketResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A4892EA63288E75FB50EE6E79EC8B7C6 /* KS3CreateBucketResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  99 + 84287D054B0EBDB1B76489CA93EE43EE /* KS3Constants.h in Headers */ = {isa = PBXBuildFile; fileRef = EC2430A8615E0C462BE9AAF471508197 /* KS3Constants.h */; settings = {ATTRIBUTES = (Public, ); }; };
  100 + 842E776BE5BA1869392898D925E8DA89 /* KS3Part.h in Headers */ = {isa = PBXBuildFile; fileRef = F93D732423383CCA96DEECF5399C70C6 /* KS3Part.h */; settings = {ATTRIBUTES = (Public, ); }; };
  101 + 8567C6C4023BB8062023DD3E823D80C3 /* KS3InitiateMultipartUploadRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 208737CFD301A664D9D6BEC6D5487C33 /* KS3InitiateMultipartUploadRequest.m */; };
  102 + 889890C800E78F48185704BE547BF97A /* KS3BucketACLResult.h in Headers */ = {isa = PBXBuildFile; fileRef = D1CF5F7D9C93E9A171AE3E16DDE65FA8 /* KS3BucketACLResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  103 + 88DD7817C6D3AD58721F3DF0EACDF543 /* KS3ObjectACLXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = BFEA23F27B1D8D09CB4E727CBB8A76C1 /* KS3ObjectACLXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  104 + 88F08741E2AE04B9BFCABEED01E18D81 /* KS3InitiateMultipartUploadResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B14750543CB775DD34AC8669452EB139 /* KS3InitiateMultipartUploadResponse.m */; };
  105 + 8BBF5086DE6CADE807024EE54B0F583F /* Ks3SDK-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB9C8ACF8FBE2A1686CF4FCDF9D6AD79 /* Ks3SDK-dummy.m */; };
  106 + 8DE376022641B9B126E8EA58E49C4E74 /* KS3SetObjectGrantACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BE3F36547E1961EDE22A046ADC6D601 /* KS3SetObjectGrantACLResponse.m */; };
  107 + 8FAAF80865D4BA210419B7E505819BD2 /* KS3YunSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 228C9BA667D373C4343270F2EAA6ADD2 /* KS3YunSDK.h */; settings = {ATTRIBUTES = (Public, ); }; };
  108 + 90193C1B5638C7EA17788C0276EF2231 /* KS3AbstractWebServiceClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 12E8B7B3A7CA2AC807B54BF1303E7EB4 /* KS3AbstractWebServiceClient.m */; };
  109 + 91F62307F36302ED82620E196A917620 /* KS3SetACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C4A88D5CB925881D1D3AF42799EA301F /* KS3SetACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  110 + 9297BBB0588A74307CDBD52168F063D0 /* KS3BucketObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E88BA8F8EA1FE41441E85A21A90F20E4 /* KS3BucketObject.m */; };
  111 + 954DBB07B05D8D19316AF857F64F3AF8 /* KS3SetACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 25D30D104C8605AB1481622C4E9B9126 /* KS3SetACLResponse.m */; };
  112 + 9637D4DAC258AD6EA19706CFFE49E7FB /* KS3SetObjectACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = CBE33D863691AD21ED59B4DADFF2FB06 /* KS3SetObjectACLRequest.m */; };
  113 + 9650FE35F96A003F8597AE5DB6DB4741 /* KS3ListPartsResultXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 308A4CECA35C0D636D9EC1A6ECA22ACF /* KS3ListPartsResultXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  114 + 98C36BECAD5FD7E58F75D1881C0096D8 /* KS3ListObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E639654AB212218A87CE5F1EA120C847 /* KS3ListObjectsRequest.m */; };
  115 + 98EBC53528694DCD2122AB12715EBC23 /* KS3DownLoad.m in Sources */ = {isa = PBXBuildFile; fileRef = 001B1D2DBEFE7A70B8B15B922E93E5C6 /* KS3DownLoad.m */; };
  116 + 98F03E6795EC0C2D68F8CBCE6B42768E /* KS3AuthUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 282086C1438794BEE1F55F310424FA2B /* KS3AuthUtils.m */; };
  117 + 9C215CC1678AE68429EEAEBB6BC290FE /* KS3MD5Util.h in Headers */ = {isa = PBXBuildFile; fileRef = DB5CC77C8CA15816B141C2EE4835FE43 /* KS3MD5Util.h */; settings = {ATTRIBUTES = (Public, ); }; };
  118 + 9CA9E9FB0406C4A4C2840BE3AF5DC19A /* KS3AbortMultipartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E59CC657635E1112400395FF2E9FE697 /* KS3AbortMultipartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  119 + 9D0E4311159EF634610B2E7605EF4F51 /* KS3BucketACLXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E5EB025F2764D28A5C05E299BB72960D /* KS3BucketACLXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  120 + 9D8A97856C2C732C5D0ECE667B948D1F /* KS3DeleteObjectResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F4B3E93472652A92DB31408B1363BD6 /* KS3DeleteObjectResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  121 + 9DC0579C46A085FBDCC77D03269E7101 /* KS3HeadBucketRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E3C23A55E5FF7CC65C39CEF3ECBDDD92 /* KS3HeadBucketRequest.m */; };
  122 + 9DE1DFBFB809D2288D65DC6A5A07F3A4 /* KS3SetGrantACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9206C6E5BB5914FF82C632D5BB591D31 /* KS3SetGrantACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  123 + 9EA1D41D1EE183BBC8584BC74C65AA24 /* KS3BucketACLResult.m in Sources */ = {isa = PBXBuildFile; fileRef = D5E8C91BEFEF19161A2BEC4503716AE7 /* KS3BucketACLResult.m */; };
  124 + A38B87ED1BA9451BFEDF7D952C7A115C /* KS3Request.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AD42B0908C144DBD5227511A64BEBE3 /* KS3Request.m */; };
  125 + A3E44C336DC5AC532CC144E94852DA02 /* KS3ListObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C6508BF7534F209B80318C7DA04B3675 /* KS3ListObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  126 + A42623D29FF9B9A4C634151C89B8E6BD /* KS3Bucket.h in Headers */ = {isa = PBXBuildFile; fileRef = D97E4668B99B9593C1C0C45C56CA87FD /* KS3Bucket.h */; settings = {ATTRIBUTES = (Public, ); }; };
  127 + A42B9451DEFC3A5A861686454B8D9600 /* KS3ResponseHeaderOverrides.h in Headers */ = {isa = PBXBuildFile; fileRef = 97428595C5980A6F9978FED2FCD6B430 /* KS3ResponseHeaderOverrides.h */; settings = {ATTRIBUTES = (Public, ); }; };
  128 + A5FB2BDD5E3CF2D2D2BFD3E046FD753E /* KS3ListBucketsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = E51FA29EDE85EA69C734616CE1F16BE2 /* KS3ListBucketsResponse.m */; };
  129 + A6934AB9346C2F7496B45F321241BAD0 /* KS3ClientException.h in Headers */ = {isa = PBXBuildFile; fileRef = A55E7D7FA446B40AA3A201A6789607F3 /* KS3ClientException.h */; settings = {ATTRIBUTES = (Public, ); }; };
  130 + A6F93C105E04D6A011EADF9E252FA6B9 /* KS3DeleteBucketResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CD1220AAF43B22E2F36DCCE7C8D06AF /* KS3DeleteBucketResponse.m */; };
  131 + AA4F19EE0FA0C0FD3E802EC2230ADD9F /* KS3Client.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AD28770169211A9589268076ED6F410 /* KS3Client.m */; };
  132 + AAD160A6B3BB4B44F6B394D155F1DC8C /* KS3Upload.h in Headers */ = {isa = PBXBuildFile; fileRef = F4FE62AACA9BCEC16E1475B0058F874F /* KS3Upload.h */; settings = {ATTRIBUTES = (Public, ); }; };
  133 + AB88E1698414D43B08491DA9052454DA /* KS3AbstractPutRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A200159BD7D0F9529B8BFE8288BB1F06 /* KS3AbstractPutRequest.m */; };
  134 + AB9486F88F4D73E9B42250BFCB092564 /* KS3WebServiceClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C57D79CFD49A2C2220674C003717F7C /* KS3WebServiceClient.m */; };
  135 + B147D64BB1DDBD2094A9D1D1ADB0CC37 /* KS3GetObjectResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3924F0529B5EFB93F561BE0E133094 /* KS3GetObjectResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  136 + BAA8AA5CB9F364714ACB4F0C1674CB3F /* KS3ListObjectsXMLPrarser.h in Headers */ = {isa = PBXBuildFile; fileRef = 97C738107C3BEAC34EA8B070CDA84DB4 /* KS3ListObjectsXMLPrarser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  137 + BC2E64990B2FECC3455769E8DF3FDB1F /* KS3ErrorHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = EE88C6EB6CA6FB6C296344FBB7149BD6 /* KS3ErrorHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
  138 + BC8BE45CD5F9F09D3996572B8536E400 /* KS3HeadObjectResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6663980868812A737ED7A3505A6CA091 /* KS3HeadObjectResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  139 + BE45EA1D439876DEFD995FB48972504D /* KS3ListPartsResultXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D2A115B9053364E4BC684AA2DFC6A269 /* KS3ListPartsResultXMLParser.m */; };
  140 + BEF26098721DD3795D15AB1096EF8237 /* KS3PutObjectResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B260A074E1F79E4E00697D5D7099D065 /* KS3PutObjectResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  141 + BF1A161AB898532070069A10C2AEE03F /* KS3PutObjectResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = C6E8195E5B341D6D2EA073D318C194D5 /* KS3PutObjectResponse.m */; };
  142 + C10D1F76EE3678B27F26C4A93191EDE0 /* KS3GetObjectACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E2E9E5E161D78BE99B19680E4013219D /* KS3GetObjectACLRequest.m */; };
  143 + C21E5F0536C3BD3E56623BA2E1317F2B /* KS3PutObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8CB8CCE5C0281B8175818258B93 /* KS3PutObjectRequest.m */; };
  144 + C2FDEB0655A0AEC863ED6959F47BEAE6 /* KS3AbstractPutRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 92C4F771692181031616FB00E9EB6854 /* KS3AbstractPutRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  145 + C3B5B602A635A6511EF7AF394282D5D0 /* KS3GetACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E3DA17B8B365B043AD2E6B158E20077 /* KS3GetACLResponse.m */; };
  146 + C4068E0D521CD8B564D737CF7F74255D /* KS3PutObjectCopyRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 24BAE1C3DA88A0BED5B4BFAA42DF2513 /* KS3PutObjectCopyRequest.m */; };
  147 + C4107BA18D4B14D3E5DBD8D40FDBA1D6 /* KS3MultipartUpload.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A304F6A51B577A2F0F8B554F29FE60C /* KS3MultipartUpload.h */; settings = {ATTRIBUTES = (Public, ); }; };
  148 + C6AA5F333B261D880C71DBF1C42FF50F /* KS3ListPartsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 20E6C7FEB7C10DE8BE35D4318B5A4998 /* KS3ListPartsRequest.m */; };
  149 + C798C0DB0DFC0A36813A60D9BA3B666E /* KS3URLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = ECD5236E6BFDA5882253BA0DF69F02BB /* KS3URLRequest.m */; };
  150 + C7AE888AA3184581924F3B72C214FDD1 /* KS3CreateBucketRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = BE7FB9C306612DCFBB73BCC46D7D9011 /* KS3CreateBucketRequest.m */; };
  151 + CB229801C3F6D94D58ABA208BAD64805 /* KS3SetObjectGrantACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = FCC8C08A6805AE4B4DCACB7E342731CB /* KS3SetObjectGrantACLRequest.m */; };
  152 + CB4F4B196F5F76F11024D8BAB6AB2669 /* KS3HeadObjectRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F56F2D9D2EEFD841A95479FECD194F53 /* KS3HeadObjectRequest.m */; };
  153 + CB8433B15B18E425C89F4B5BDC095C3D /* KS3HeadBucketResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 238D3B7F2746ED8643D0E29958CCBFA7 /* KS3HeadBucketResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  154 + CC4CF53DDBA39A7E1E06C64CBDE08BFB /* KS3SetACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C6C33D99E17307AFDDA38AB4CDA255EB /* KS3SetACLRequest.m */; };
  155 + CCF340E86745A61BECC5157C8ADDF70B /* KS3BucketObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E301A6C98B84E2536A81154F4F60F66 /* KS3BucketObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
  156 + CD7836BF6918DF077135A18595CFBCE5 /* KS3SetACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 42959F4CD9E0F8B0C072B4AED711B2AF /* KS3SetACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  157 + CED769315EFFB38F6C3B9B2D5841B3D7 /* KS3Response.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C0A4C28045F768C0079C7547744699 /* KS3Response.h */; settings = {ATTRIBUTES = (Public, ); }; };
  158 + CF5DD58C00ED09E5CE3E482CA327A957 /* KS3DeleteBucketResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E27E3DA2241BCF91D5FCA4C4025B570E /* KS3DeleteBucketResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  159 + CF9F57F1662BD9D99FCDB4767D9E1DE8 /* KS3MD5Util.m in Sources */ = {isa = PBXBuildFile; fileRef = F36E9E85B0612FBA7A1C948F33776465 /* KS3MD5Util.m */; };
  160 + D2E92BAB1A28EB8EF69AD2FFF409A49D /* KS3GetBucketLoggingResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B67D0243FB6075327C97D4E75C14108E /* KS3GetBucketLoggingResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  161 + D3FE143C6DD1849BED7902EB5E2C031F /* KS3ListBucketsXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 838489FE9792086888A6A1C8F1F63A85 /* KS3ListBucketsXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  162 + D44350AB0B0B3EF8089E4551C158392D /* KS3Request.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D33D75A48DF90EAA04360F99462CC33 /* KS3Request.h */; settings = {ATTRIBUTES = (Public, ); }; };
  163 + D47CF3247FF5D5138E799494199B4B50 /* KS3ListPartsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 33966032BFE4600761F020B2202345C3 /* KS3ListPartsResult.m */; };
  164 + D61489CF1341C38EA8290B0337C86972 /* KS3Credentials.m in Sources */ = {isa = PBXBuildFile; fileRef = 8639900AF2A65D916E46748F8EB19E17 /* KS3Credentials.m */; };
  165 + D77F4F55A51276CBC21DBC5E5B0DDB10 /* KS3InitiateMultipartUploadRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 6550D70A7FAFEA03B3A65F41C65762A7 /* KS3InitiateMultipartUploadRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  166 + D9F6953278DF3B045F3C01A942FE31B0 /* KS3ListBucketsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8A88B3F5CEDF8D236F38293695C8EB /* KS3ListBucketsResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
  167 + DA111D0713EFE0B97CDD9F70C7AEB8F1 /* KS3AuthUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CE003D5A6D84AD6E27933D2F948F94D /* KS3AuthUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
  168 + DA5507CE4C62C933DC86FEDC9EAA89FE /* KS3Bucket.m in Sources */ = {isa = PBXBuildFile; fileRef = FEBCCE486962D9AD68E35DF2E70D14AC /* KS3Bucket.m */; };
  169 + DCD055F9FEB654A3CB3C520CB5A8DF02 /* KS3PutObjectCopyRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 22204647482FE20AD51C027C57E74432 /* KS3PutObjectCopyRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  170 + DDD421463474E95EF6ADCA4A8E22AFC9 /* KS3InitiateMultipartUploadXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 32EE86D89F6186D65FE51495C7C9188A /* KS3InitiateMultipartUploadXMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
  171 + DE764F20C0EC415684FD49906918BB7E /* KS3GetBucketLoggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C0427F35CE175CC9B9D05B1B275FC23 /* KS3GetBucketLoggingRequest.m */; };
  172 + DFED20C1500C1EB14FDE3362188038B5 /* KS3SetBucketLoggingRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = EFE59DFD419735F99781B9C5F727BF60 /* KS3SetBucketLoggingRequest.m */; };
  173 + E1F6C2A9615B41CD846CDBAF15BB4CE4 /* KS3SetGrantACLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = AA8BDE878494543FCBBA13BBFD9935D0 /* KS3SetGrantACLRequest.m */; };
  174 + E27005195A8058B5B8A780033D386978 /* KS3Grant.h in Headers */ = {isa = PBXBuildFile; fileRef = ED39DD3153F95A50F4497A86604752EB /* KS3Grant.h */; settings = {ATTRIBUTES = (Public, ); }; };
  175 + E4E63EAC6F131378947230E8FDC4AFFD /* KS3SetObjectGrantACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = E41ED692AF01F994E6FD365A6ACBC4B2 /* KS3SetObjectGrantACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  176 + E64D73D9A51E4A70187656F0651571DE /* KS3ListObjectsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 72B4B4301A2F052EAE8F80B0F2FF09FE /* KS3ListObjectsResult.m */; };
  177 + E849BE4B5C26D0DC0672B2F293EE94D1 /* KS3DeleteBucketRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9625D87253845B536CD1BE3EB6EE375E /* KS3DeleteBucketRequest.m */; };
  178 + E9136460EE5ECC4C873B5197450268F0 /* KS3GetObjectResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9643394B0D7F15C6C156A35E532DCDF7 /* KS3GetObjectResponse.m */; };
  179 + E9A8DB60A072FA3106164A4004F4148D /* KS3SetObjectACLResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 379A67B432D836127B4FB23CA7D727CB /* KS3SetObjectACLResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
  180 + EC2A8D5A6FBF71E72BD76D68E8B42188 /* KS3ResponseHeaderOverrides.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D62A4A5FF6A134A03A051619CC75BC /* KS3ResponseHeaderOverrides.m */; };
  181 + EDFA69FDEFA347336F0D80F4E9EF7E9B /* KS3Credentials.h in Headers */ = {isa = PBXBuildFile; fileRef = CB5931A6BD1BCE65A51BD0F10D67EE60 /* KS3Credentials.h */; settings = {ATTRIBUTES = (Public, ); }; };
  182 + EEB806BB5BE40F2BCD348B069BF3D1A0 /* KS3AbortMultipartUploadResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF3C098D1571A79186B80E5E75E9FE6 /* KS3AbortMultipartUploadResponse.m */; };
  183 + F0CECE49BF62E2E3321C7368FFEE59F9 /* KS3HeadObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A73ED96D9DBD2DD9F7CF5B696A882FB8 /* KS3HeadObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  184 + F105A03D3B60B3EBC164B81698AAF736 /* KS3SetObjectACLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = AE41E3E5C5EE57CA16D4A9A3D1A91A40 /* KS3SetObjectACLRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  185 + F12C35924E2F8C3E0B4C69E9ACC552FF /* Pods-KS3SDKDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97863A099DD4C34098C3A880F3445FAA /* Pods-KS3SDKDemo-dummy.m */; };
  186 + F1923ED2CE802CC21CAE26FC501DE6FA /* KS3GetObjectACLResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = B428A7EB6E1F3E420D576DA5EE4E7F8D /* KS3GetObjectACLResponse.m */; };
  187 + F37F0F96B3B4925CB39138677D232EF7 /* KS3AbstractWebServiceClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 21EFEB74E1D7F9BABDA52A28A3E82612 /* KS3AbstractWebServiceClient.h */; settings = {ATTRIBUTES = (Public, ); }; };
  188 + F41F5ED15CA0DC06838D616855A8017E /* KS3PutObjectRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 14861D0764D5D600368CDF8AB883FA55 /* KS3PutObjectRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  189 + F59BC2C585A612163D17987A125233E3 /* KS3CreateBucketRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = F4584580A754F2C8583C8B6828E05DDD /* KS3CreateBucketRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  190 + F95A3C41F6116C05004FA85DB32E976A /* KS3GetBucketLoggingRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 190430CCBC2E1C742E36AF6CEF07C27D /* KS3GetBucketLoggingRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  191 + FA479763A64A4148A3AE7BE031235B66 /* KS3UploadPartRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 094DDCB0BE44C03DB592CEB34C500BB3 /* KS3UploadPartRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
  192 +/* End PBXBuildFile section */
  193 +
  194 +/* Begin PBXContainerItemProxy section */
  195 + 981513A7FAA0CA66689E535B8DEF7744 /* PBXContainerItemProxy */ = {
  196 + isa = PBXContainerItemProxy;
  197 + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
  198 + proxyType = 1;
  199 + remoteGlobalIDString = 95FC2A6E6601C839D6B4BD4B31ACA4FD;
  200 + remoteInfo = Ks3SDK;
  201 + };
  202 +/* End PBXContainerItemProxy section */
  203 +
  204 +/* Begin PBXFileReference section */
  205 + 001B1D2DBEFE7A70B8B15B922E93E5C6 /* KS3DownLoad.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3DownLoad.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.m; sourceTree = "<group>"; };
  206 + 00287004427A15D6DA7565F3A8349C5A /* KS3ListBucketsXMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListBucketsXMLParser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.m; sourceTree = "<group>"; };
  207 + 00295F843D77BC9DD7E95BBC91A2ECAB /* KS3DeleteObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3DeleteObjectRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.h; sourceTree = "<group>"; };
  208 + 011FE3858F6FACB9C85D985FF62F24A1 /* KS3ServiceResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ServiceResponse.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.h; sourceTree = "<group>"; };
  209 + 0258B8D9FBCB6E96A18FDC8067CF357B /* Pods-KS3SDKDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-KS3SDKDemo.release.xcconfig"; sourceTree = "<group>"; };
  210 + 04F83304A2E06513F5C18456980389F9 /* Pods-KS3SDKDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-KS3SDKDemo-acknowledgements.markdown"; sourceTree = "<group>"; };
  211 + 094DDCB0BE44C03DB592CEB34C500BB3 /* KS3UploadPartRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3UploadPartRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.h; sourceTree = "<group>"; };
  212 + 096AE6267B0879DD5DA6EF833BDE1BEC /* KS3ServiceRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ServiceRequest.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.m; sourceTree = "<group>"; };
  213 + 0977D0682351BF0B28C4D912B0B5F7E9 /* KS3ListObjectsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListObjectsResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.m; sourceTree = "<group>"; };
  214 + 09E2873AB05A9756074CC9BB3BD472FC /* KS3GetACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.h; sourceTree = "<group>"; };
  215 + 0DF8A004C752608C3E8128C2C9D917A3 /* KS3ObjectSummary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ObjectSummary.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.h; sourceTree = "<group>"; };
  216 + 1115EFC72E20133ABC81DEEAA8E11D01 /* KS3Owner.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Owner.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.h; sourceTree = "<group>"; };
  217 + 12E8B7B3A7CA2AC807B54BF1303E7EB4 /* KS3AbstractWebServiceClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AbstractWebServiceClient.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.m; sourceTree = "<group>"; };
  218 + 14861D0764D5D600368CDF8AB883FA55 /* KS3PutObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3PutObjectRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.h; sourceTree = "<group>"; };
  219 + 17EAAB93804A7C2449822A5CA439796B /* Pods-KS3SDKDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-KS3SDKDemo-resources.sh"; sourceTree = "<group>"; };
  220 + 17F446E233CDDD1A1077F3D053F8F942 /* libKs3SDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libKs3SDK.a; path = libKs3SDK.a; sourceTree = BUILT_PRODUCTS_DIR; };
  221 + 1867F5F806278E892F6EA26144A3246B /* KS3GetObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetObjectRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.m; sourceTree = "<group>"; };
  222 + 190430CCBC2E1C742E36AF6CEF07C27D /* KS3GetBucketLoggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetBucketLoggingRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.h; sourceTree = "<group>"; };
  223 + 1A304F6A51B577A2F0F8B554F29FE60C /* KS3MultipartUpload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3MultipartUpload.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.h; sourceTree = "<group>"; };
  224 + 1A71A824849284998716A12F60D91893 /* KS3ListBucketsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListBucketsResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.h; sourceTree = "<group>"; };
  225 + 1A7E2AE75FF78B200909055607835FA7 /* KS3SetGrantACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetGrantACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.h; sourceTree = "<group>"; };
  226 + 1CD1220AAF43B22E2F36DCCE7C8D06AF /* KS3DeleteBucketResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3DeleteBucketResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.m; sourceTree = "<group>"; };
  227 + 1F4B3E93472652A92DB31408B1363BD6 /* KS3DeleteObjectResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3DeleteObjectResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.h; sourceTree = "<group>"; };
  228 + 208737CFD301A664D9D6BEC6D5487C33 /* KS3InitiateMultipartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3InitiateMultipartUploadRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.m; sourceTree = "<group>"; };
  229 + 20E6C7FEB7C10DE8BE35D4318B5A4998 /* KS3ListPartsRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListPartsRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.m; sourceTree = "<group>"; };
  230 + 21EFEB74E1D7F9BABDA52A28A3E82612 /* KS3AbstractWebServiceClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AbstractWebServiceClient.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractWebServiceClient.h; sourceTree = "<group>"; };
  231 + 22204647482FE20AD51C027C57E74432 /* KS3PutObjectCopyRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3PutObjectCopyRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.h; sourceTree = "<group>"; };
  232 + 228C9BA667D373C4343270F2EAA6ADD2 /* KS3YunSDK.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3YunSDK.h; path = KS3YunSDK/KS3YunSDK.h; sourceTree = "<group>"; };
  233 + 234B282D8871514861EE0AF095BABDCB /* KS3DeleteObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3DeleteObjectRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectRequest.m; sourceTree = "<group>"; };
  234 + 238D3B7F2746ED8643D0E29958CCBFA7 /* KS3HeadBucketResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3HeadBucketResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.h; sourceTree = "<group>"; };
  235 + 24BAE1C3DA88A0BED5B4BFAA42DF2513 /* KS3PutObjectCopyRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3PutObjectCopyRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyRequest.m; sourceTree = "<group>"; };
  236 + 25D30D104C8605AB1481622C4E9B9126 /* KS3SetACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.m; sourceTree = "<group>"; };
  237 + 273BE8FAD908E5970FF2A827A862E08B /* KS3Owner.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Owner.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Owner.m; sourceTree = "<group>"; };
  238 + 282086C1438794BEE1F55F310424FA2B /* KS3AuthUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AuthUtils.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.m; sourceTree = "<group>"; };
  239 + 2B8F46222934E72D700B438C1D605F35 /* KS3SDKUtil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SDKUtil.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.m; sourceTree = "<group>"; };
  240 + 2F24D60B09D175A5FE5867D7A4EA7348 /* KS3ServiceResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ServiceResponse.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceResponse.m; sourceTree = "<group>"; };
  241 + 2F622DDA8BC57A0C1E8E7B41E7223438 /* Ks3SDK-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Ks3SDK-prefix.pch"; sourceTree = "<group>"; };
  242 + 3001A5B02820A7685EBB5E772B44F6B5 /* KS3ClientException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ClientException.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.m; sourceTree = "<group>"; };
  243 + 3058D771BD76D0B6F184E484D39DF70E /* KS3ListObjectsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListObjectsResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.h; sourceTree = "<group>"; };
  244 + 308A4CECA35C0D636D9EC1A6ECA22ACF /* KS3ListPartsResultXMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListPartsResultXMLParser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.h; sourceTree = "<group>"; };
  245 + 32C0A4C28045F768C0079C7547744699 /* KS3Response.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Response.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.h; sourceTree = "<group>"; };
  246 + 32EE86D89F6186D65FE51495C7C9188A /* KS3InitiateMultipartUploadXMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3InitiateMultipartUploadXMLParser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.h; sourceTree = "<group>"; };
  247 + 33966032BFE4600761F020B2202345C3 /* KS3ListPartsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListPartsResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.m; sourceTree = "<group>"; };
  248 + 339DD48EDBEBAE45A87E3B99CA35AB89 /* KS3CompleteMultipartUploadResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3CompleteMultipartUploadResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.m; sourceTree = "<group>"; };
  249 + 351C95E9B5210C3A34F7DE45926B3C3D /* KS3GrantAccessControlList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GrantAccessControlList.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.h; sourceTree = "<group>"; };
  250 + 379A67B432D836127B4FB23CA7D727CB /* KS3SetObjectACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetObjectACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.h; sourceTree = "<group>"; };
  251 + 3C57D79CFD49A2C2220674C003717F7C /* KS3WebServiceClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3WebServiceClient.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.m; sourceTree = "<group>"; };
  252 + 3F3C1E0EC8FC9E1969C04941E8522905 /* KS3DownLoad.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3DownLoad.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DownLoad.h; sourceTree = "<group>"; };
  253 + 42959F4CD9E0F8B0C072B4AED711B2AF /* KS3SetACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLResponse.h; sourceTree = "<group>"; };
  254 + 45515BCC9266D22D5ED69E0490CA081E /* libPods-KS3SDKDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-KS3SDKDemo.a"; path = "libPods-KS3SDKDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; };
  255 + 45E83D8FB93E7C4899F979A5C6CD5CDF /* KS3AccessControlList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AccessControlList.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.m; sourceTree = "<group>"; };
  256 + 485738248A9631FDBA098B4A9079EE5F /* KS3Part.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Part.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.m; sourceTree = "<group>"; };
  257 + 488E7972F0E14B2A8A18F5BA53B8057D /* KS3ObjectACLXMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ObjectACLXMLParser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.m; sourceTree = "<group>"; };
  258 + 4A639F773BB0039F8A95DDFFC8756374 /* KS3UploadPartResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3UploadPartResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.m; sourceTree = "<group>"; };
  259 + 4BE3F36547E1961EDE22A046ADC6D601 /* KS3SetObjectGrantACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetObjectGrantACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.m; sourceTree = "<group>"; };
  260 + 4CC90C081A79C6C117FEC89896C93E7E /* KS3ListPartsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListPartsResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResult.h; sourceTree = "<group>"; };
  261 + 4CE003D5A6D84AD6E27933D2F948F94D /* KS3AuthUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AuthUtils.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AuthUtils.h; sourceTree = "<group>"; };
  262 + 4FE40DEE975EC9B8F5D5B6AB9ABD6C1A /* KS3MultipartUpload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3MultipartUpload.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3MultipartUpload.m; sourceTree = "<group>"; };
  263 + 54292A0659DF5EE135999ADD04C57E29 /* KS3SDKUtil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SDKUtil.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3SDKUtil.h; sourceTree = "<group>"; };
  264 + 542AAF95AF0DD2C1F46BF827FB276303 /* KS3CompleteMultipartUploadResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3CompleteMultipartUploadResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResult.h; sourceTree = "<group>"; };
  265 + 54FDB2CCE959195E52AE7D09B58BFB53 /* KS3CompleteMultipartUploadResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3CompleteMultipartUploadResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.m; sourceTree = "<group>"; };
  266 + 58A13081230750338D08FB45DC93CE89 /* KS3GetACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLRequest.m; sourceTree = "<group>"; };
  267 + 59B243FFE0CCB104C821B80BCEB6D27B /* KS3CreateBucketResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3CreateBucketResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.m; sourceTree = "<group>"; };
  268 + 5F9F7DB8941940A32A6C254CDDD038DB /* KS3UploadManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3UploadManager.m; path = KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.m; sourceTree = "<group>"; };
  269 + 61250E7FD2917E7D7318618FEBBBAA77 /* KS3InitiateMultipartUploadResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3InitiateMultipartUploadResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.h; sourceTree = "<group>"; };
  270 + 629C5CAEB0A9C75C840A528924375652 /* KS3UploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3UploadRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.m; sourceTree = "<group>"; };
  271 + 64415A03B1B28D135076F56E564E3521 /* KS3GetObjectACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetObjectACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.h; sourceTree = "<group>"; };
  272 + 6550D70A7FAFEA03B3A65F41C65762A7 /* KS3InitiateMultipartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3InitiateMultipartUploadRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadRequest.h; sourceTree = "<group>"; };
  273 + 6592191393193A4B15033D8F88CB8C2E /* KS3ListPartsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListPartsResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.m; sourceTree = "<group>"; };
  274 + 6663980868812A737ED7A3505A6CA091 /* KS3HeadObjectResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3HeadObjectResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.h; sourceTree = "<group>"; };
  275 + 6A1FA245D8885C7C99EFF823320F789D /* KS3ListObjectsXMLPrarser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListObjectsXMLPrarser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.m; sourceTree = "<group>"; };
  276 + 6AD42B0908C144DBD5227511A64BEBE3 /* KS3Request.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Request.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.m; sourceTree = "<group>"; };
  277 + 6B7761ADA6F116A75243AA0D8AAA3102 /* KS3CompleteMultipartUploadResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3CompleteMultipartUploadResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadResponse.h; sourceTree = "<group>"; };
  278 + 6BF3C098D1571A79186B80E5E75E9FE6 /* KS3AbortMultipartUploadResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AbortMultipartUploadResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.m; sourceTree = "<group>"; };
  279 + 6D33D75A48DF90EAA04360F99462CC33 /* KS3Request.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Request.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Request.h; sourceTree = "<group>"; };
  280 + 6E2B230F4D37F9B5F161265B9F1863F7 /* KS3BucketACLXMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3BucketACLXMLParser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.m; sourceTree = "<group>"; };
  281 + 6E301A6C98B84E2536A81154F4F60F66 /* KS3BucketObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3BucketObject.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.h; sourceTree = "<group>"; };
  282 + 707CCF0D13833B92FEE73B8136FCCC30 /* KS3HeadBucketRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3HeadBucketRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.h; sourceTree = "<group>"; };
  283 + 71D62A4A5FF6A134A03A051619CC75BC /* KS3ResponseHeaderOverrides.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ResponseHeaderOverrides.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.m; sourceTree = "<group>"; };
  284 + 72B4B4301A2F052EAE8F80B0F2FF09FE /* KS3ListObjectsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListObjectsResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResult.m; sourceTree = "<group>"; };
  285 + 74D09221BF115067D6DC96A4EECB086B /* KS3SetObjectGrantACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetObjectGrantACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.h; sourceTree = "<group>"; };
  286 + 76D8C2BBF84A2BBF0580CF0DFB99B186 /* KS3DeleteObjectResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3DeleteObjectResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3DeleteObjectResponse.m; sourceTree = "<group>"; };
  287 + 76FAB5EEAF325B51B13B562249C466CA /* KS3UploadPartRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3UploadPartRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartRequest.m; sourceTree = "<group>"; };
  288 + 79A0D8CB8CCE5C0281B8175818258B93 /* KS3PutObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3PutObjectRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectRequest.m; sourceTree = "<group>"; };
  289 + 7AB06D81E6FBC1A461D417713ABEA86D /* KS3GetObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetObjectRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectRequest.h; sourceTree = "<group>"; };
  290 + 8094F5D8A1535493B770D6FCED7B95BD /* KS3ListObjectsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListObjectsResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsResponse.h; sourceTree = "<group>"; };
  291 + 80CCC2E8A8057A24DC291F47BF9FAE0A /* KS3InitiateMultipartUploadXMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3InitiateMultipartUploadXMLParser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadXMLParser.m; sourceTree = "<group>"; };
  292 + 81384540B73C340C0884E7A0FE88A1C1 /* KS3GrantAccessControlList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GrantAccessControlList.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3GrantAccessControlList.m; sourceTree = "<group>"; };
  293 + 8233887A30932FF0F5BD7E7E96ACC4F8 /* KS3UploadPartResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3UploadPartResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadPartResponse.h; sourceTree = "<group>"; };
  294 + 838489FE9792086888A6A1C8F1F63A85 /* KS3ListBucketsXMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListBucketsXMLParser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsXMLParser.h; sourceTree = "<group>"; };
  295 + 8639900AF2A65D916E46748F8EB19E17 /* KS3Credentials.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Credentials.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.m; sourceTree = "<group>"; };
  296 + 8773222E674FA91A1813B10C090A0DB4 /* KS3UploadManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3UploadManager.h; path = KS3YunSDK/KS3YunSDK/KSYS3/Advanced/Upload/KS3UploadManager.h; sourceTree = "<group>"; };
  297 + 8808028D324FD3153F27C4889282B0D8 /* KS3Grant.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Grant.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.m; sourceTree = "<group>"; };
  298 + 8A0C050B5ED769338F44C4620C1CEB71 /* KS3InitiateMultipartUploadResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3InitiateMultipartUploadResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.h; sourceTree = "<group>"; };
  299 + 8AD28770169211A9589268076ED6F410 /* KS3Client.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Client.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.m; sourceTree = "<group>"; };
  300 + 8D8A88B3F5CEDF8D236F38293695C8EB /* KS3ListBucketsResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListBucketsResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.h; sourceTree = "<group>"; };
  301 + 8E3DA17B8B365B043AD2E6B158E20077 /* KS3GetACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.m; sourceTree = "<group>"; };
  302 + 9206C6E5BB5914FF82C632D5BB591D31 /* KS3SetGrantACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetGrantACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.h; sourceTree = "<group>"; };
  303 + 92C4F771692181031616FB00E9EB6854 /* KS3AbstractPutRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AbstractPutRequest.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.h; sourceTree = "<group>"; };
  304 + 937F8C893F4237D5C9AF6960BDF0D3FC /* Pods-KS3SDKDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-KS3SDKDemo.debug.xcconfig"; sourceTree = "<group>"; };
  305 + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
  306 + 9625D87253845B536CD1BE3EB6EE375E /* KS3DeleteBucketRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3DeleteBucketRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.m; sourceTree = "<group>"; };
  307 + 9643394B0D7F15C6C156A35E532DCDF7 /* KS3GetObjectResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetObjectResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.m; sourceTree = "<group>"; };
  308 + 96DEEAC9F61E6BA0CCE9518F22C17736 /* KS3DeleteBucketRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3DeleteBucketRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketRequest.h; sourceTree = "<group>"; };
  309 + 97428595C5980A6F9978FED2FCD6B430 /* KS3ResponseHeaderOverrides.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ResponseHeaderOverrides.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3ResponseHeaderOverrides.h; sourceTree = "<group>"; };
  310 + 97863A099DD4C34098C3A880F3445FAA /* Pods-KS3SDKDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-KS3SDKDemo-dummy.m"; sourceTree = "<group>"; };
  311 + 97C738107C3BEAC34EA8B070CDA84DB4 /* KS3ListObjectsXMLPrarser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListObjectsXMLPrarser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsXMLPrarser.h; sourceTree = "<group>"; };
  312 + 9C0427F35CE175CC9B9D05B1B275FC23 /* KS3GetBucketLoggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetBucketLoggingRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingRequest.m; sourceTree = "<group>"; };
  313 + 9DF17755770A04CFED26AF90177EF022 /* KS3BucketNameUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3BucketNameUtilities.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.m; sourceTree = "<group>"; };
  314 + 9E996AB713CDF2F0732D24C11FA52C25 /* Pods-KS3SDKDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-KS3SDKDemo-frameworks.sh"; sourceTree = "<group>"; };
  315 + 9EB2EAB425C265479580AC4444F4851E /* KS3PutObjectCopyResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3PutObjectCopyResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.h; sourceTree = "<group>"; };
  316 + A075D9F0DD5B2EF4F8B5C21385FA784A /* Ks3SDK.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Ks3SDK.xcconfig; sourceTree = "<group>"; };
  317 + A093453D3C973CA86362A56018762E18 /* KS3ListBucketsRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListBucketsRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.h; sourceTree = "<group>"; };
  318 + A200159BD7D0F9529B8BFE8288BB1F06 /* KS3AbstractPutRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AbstractPutRequest.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3AbstractPutRequest.m; sourceTree = "<group>"; };
  319 + A4892EA63288E75FB50EE6E79EC8B7C6 /* KS3CreateBucketResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3CreateBucketResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketResponse.h; sourceTree = "<group>"; };
  320 + A55E7D7FA446B40AA3A201A6789607F3 /* KS3ClientException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ClientException.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ClientException.h; sourceTree = "<group>"; };
  321 + A73ED96D9DBD2DD9F7CF5B696A882FB8 /* KS3HeadObjectRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3HeadObjectRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.h; sourceTree = "<group>"; };
  322 + AA8BDE878494543FCBBA13BBFD9935D0 /* KS3SetGrantACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetGrantACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLRequest.m; sourceTree = "<group>"; };
  323 + AC8C95552C1C5E9491548EEB2E49CF6D /* KS3GetObjectACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetObjectACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.h; sourceTree = "<group>"; };
  324 + AE41E3E5C5EE57CA16D4A9A3D1A91A40 /* KS3SetObjectACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetObjectACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.h; sourceTree = "<group>"; };
  325 + AEA566B3488C468C24B73B3B291FEED3 /* KS3ErrorHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ErrorHandler.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.m; sourceTree = "<group>"; };
  326 + AEED845619E1065E85AB1808033F6AD8 /* KS3CompleteMultipartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3CompleteMultipartUploadRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.m; sourceTree = "<group>"; };
  327 + B14750543CB775DD34AC8669452EB139 /* KS3InitiateMultipartUploadResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3InitiateMultipartUploadResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResponse.m; sourceTree = "<group>"; };
  328 + B16C8B97FA01C5066E22A3EE4F58E829 /* KS3ListPartsResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListPartsResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResponse.h; sourceTree = "<group>"; };
  329 + B260A074E1F79E4E00697D5D7099D065 /* KS3PutObjectResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3PutObjectResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.h; sourceTree = "<group>"; };
  330 + B428A7EB6E1F3E420D576DA5EE4E7F8D /* KS3GetObjectACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetObjectACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLResponse.m; sourceTree = "<group>"; };
  331 + B5E8E77D7FD08F866E3CEA5E7B00E1B9 /* KS3URLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3URLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.h; sourceTree = "<group>"; };
  332 + B67D0243FB6075327C97D4E75C14108E /* KS3GetBucketLoggingResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetBucketLoggingResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.h; sourceTree = "<group>"; };
  333 + B96479C67EF97D9ACC28889965607759 /* KS3ListPartsRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListPartsRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsRequest.h; sourceTree = "<group>"; };
  334 + BC3924F0529B5EFB93F561BE0E133094 /* KS3GetObjectResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetObjectResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectResponse.h; sourceTree = "<group>"; };
  335 + BE7FB9C306612DCFBB73BCC46D7D9011 /* KS3CreateBucketRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3CreateBucketRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.m; sourceTree = "<group>"; };
  336 + BFEA23F27B1D8D09CB4E727CBB8A76C1 /* KS3ObjectACLXMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ObjectACLXMLParser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ObjectACLXMLParser.h; sourceTree = "<group>"; };
  337 + C3E5644AB833D45595984EBC6F10193D /* KS3InitiateMultipartUploadResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3InitiateMultipartUploadResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3InitiateMultipartUploadResult.m; sourceTree = "<group>"; };
  338 + C4A88D5CB925881D1D3AF42799EA301F /* KS3SetACLRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetACLRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.h; sourceTree = "<group>"; };
  339 + C5801DC0391BFD12B6F11800960BB93D /* KS3SetObjectACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetObjectACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLResponse.m; sourceTree = "<group>"; };
  340 + C6508BF7534F209B80318C7DA04B3675 /* KS3ListObjectsRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ListObjectsRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.h; sourceTree = "<group>"; };
  341 + C6C33D99E17307AFDDA38AB4CDA255EB /* KS3SetACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetACLRequest.m; sourceTree = "<group>"; };
  342 + C6E8195E5B341D6D2EA073D318C194D5 /* KS3PutObjectResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3PutObjectResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectResponse.m; sourceTree = "<group>"; };
  343 + C72BD2304D746A3D2F5932A55C2A547C /* KS3HeadBucketResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3HeadBucketResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketResponse.m; sourceTree = "<group>"; };
  344 + C7AA6C3C38545F5C337E0B529E4E33E5 /* KS3HeadObjectResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3HeadObjectResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectResponse.m; sourceTree = "<group>"; };
  345 + C97A99A9950F068090AF8CB39E2EA215 /* KS3PutObjectCopyResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3PutObjectCopyResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3PutObjectCopyResponse.m; sourceTree = "<group>"; };
  346 + CB5931A6BD1BCE65A51BD0F10D67EE60 /* KS3Credentials.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Credentials.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Credentials.h; sourceTree = "<group>"; };
  347 + CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
  348 + CBE33D863691AD21ED59B4DADFF2FB06 /* KS3SetObjectACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetObjectACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectACLRequest.m; sourceTree = "<group>"; };
  349 + D1CF5F7D9C93E9A171AE3E16DDE65FA8 /* KS3BucketACLResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3BucketACLResult.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.h; sourceTree = "<group>"; };
  350 + D2A115B9053364E4BC684AA2DFC6A269 /* KS3ListPartsResultXMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListPartsResultXMLParser.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3ListPartsResultXMLParser.m; sourceTree = "<group>"; };
  351 + D5E8C91BEFEF19161A2BEC4503716AE7 /* KS3BucketACLResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3BucketACLResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLResult.m; sourceTree = "<group>"; };
  352 + D74205DA028EC7C34C6C06265BF46F6F /* KS3SetBucketLoggingResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetBucketLoggingResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.h; sourceTree = "<group>"; };
  353 + D97E4668B99B9593C1C0C45C56CA87FD /* KS3Bucket.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Bucket.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.h; sourceTree = "<group>"; };
  354 + DAD2147A9F4106CD969BE5936BFFB335 /* KS3SetBucketLoggingRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetBucketLoggingRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.h; sourceTree = "<group>"; };
  355 + DB5CC77C8CA15816B141C2EE4835FE43 /* KS3MD5Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3MD5Util.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.h; sourceTree = "<group>"; };
  356 + DC506D7CD3F3692CB65424E69B32EF4D /* KS3WebServiceClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3WebServiceClient.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3WebServiceClient.h; sourceTree = "<group>"; };
  357 + DD45A0B978555EC844787A8BF56573E1 /* KS3UploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3UploadRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3UploadRequest.h; sourceTree = "<group>"; };
  358 + DEBA81D6EAEF27E1A690CF02D9ACAA01 /* KS3ListBucketsResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListBucketsResult.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResult.m; sourceTree = "<group>"; };
  359 + DED26E39303371C2ECF4F8B676C524AF /* KS3AbortMultipartUploadRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3AbortMultipartUploadRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.m; sourceTree = "<group>"; };
  360 + E27E3DA2241BCF91D5FCA4C4025B570E /* KS3DeleteBucketResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3DeleteBucketResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3DeleteBucketResponse.h; sourceTree = "<group>"; };
  361 + E2E9E5E161D78BE99B19680E4013219D /* KS3GetObjectACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetObjectACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3GetObjectACLRequest.m; sourceTree = "<group>"; };
  362 + E3C23A55E5FF7CC65C39CEF3ECBDDD92 /* KS3HeadBucketRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3HeadBucketRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3HeadBucketRequest.m; sourceTree = "<group>"; };
  363 + E41ED692AF01F994E6FD365A6ACBC4B2 /* KS3SetObjectGrantACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3SetObjectGrantACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLResponse.h; sourceTree = "<group>"; };
  364 + E4F72772BF85572BC9FE0BBA2F6BD120 /* KS3AccessControlList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AccessControlList.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3AccessControlList.h; sourceTree = "<group>"; };
  365 + E51FA29EDE85EA69C734616CE1F16BE2 /* KS3ListBucketsResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListBucketsResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsResponse.m; sourceTree = "<group>"; };
  366 + E59CC657635E1112400395FF2E9FE697 /* KS3AbortMultipartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AbortMultipartUploadRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadRequest.h; sourceTree = "<group>"; };
  367 + E5DCC6DF4B43135E32980CBC6AB111DC /* KS3SetGrantACLResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetGrantACLResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetGrantACLResponse.m; sourceTree = "<group>"; };
  368 + E5EB025F2764D28A5C05E299BB72960D /* KS3BucketACLXMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3BucketACLXMLParser.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketACLXMLParser.h; sourceTree = "<group>"; };
  369 + E639654AB212218A87CE5F1EA120C847 /* KS3ListObjectsRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListObjectsRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ListObjectsRequest.m; sourceTree = "<group>"; };
  370 + E6C9752CB0231F571A6AF01FF7186B88 /* Pods-KS3SDKDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-KS3SDKDemo-acknowledgements.plist"; sourceTree = "<group>"; };
  371 + E7F2045FA41767555C205538C73B8368 /* KS3CompleteMultipartUploadRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3CompleteMultipartUploadRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3CompleteMultipartUploadRequest.h; sourceTree = "<group>"; };
  372 + E88BA8F8EA1FE41441E85A21A90F20E4 /* KS3BucketObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3BucketObject.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3BucketObject.m; sourceTree = "<group>"; };
  373 + E8C96C5EDE45F128555DFDFA6993AEA2 /* KS3GetBucketLoggingResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3GetBucketLoggingResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetBucketLoggingResponse.m; sourceTree = "<group>"; };
  374 + EB08EB9471E2DF0F7660DEF8C9F9A5C8 /* KS3GetACLResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3GetACLResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3GetACLResponse.h; sourceTree = "<group>"; };
  375 + EB7913C5BC1BC9E4F99FBD572C86B037 /* KS3Response.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Response.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Response.m; sourceTree = "<group>"; };
  376 + EC2430A8615E0C462BE9AAF471508197 /* KS3Constants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Constants.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3Constants.h; sourceTree = "<group>"; };
  377 + ECD5236E6BFDA5882253BA0DF69F02BB /* KS3URLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3URLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3URLRequest.m; sourceTree = "<group>"; };
  378 + ED39DD3153F95A50F4497A86604752EB /* KS3Grant.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Grant.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/KS3Grant.h; sourceTree = "<group>"; };
  379 + EE88C6EB6CA6FB6C296344FBB7149BD6 /* KS3ErrorHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ErrorHandler.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ErrorHandler.h; sourceTree = "<group>"; };
  380 + EF0280A7CEEE7C30913D583B01A8D425 /* KS3ListBucketsRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ListBucketsRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3ListBucketsRequest.m; sourceTree = "<group>"; };
  381 + EF4CCAA5E766727CF93F180382B97900 /* KS3ServiceRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3ServiceRequest.h; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3ServiceRequest.h; sourceTree = "<group>"; };
  382 + EFE59DFD419735F99781B9C5F727BF60 /* KS3SetBucketLoggingRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetBucketLoggingRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingRequest.m; sourceTree = "<group>"; };
  383 + F0DF090507CC6403A409EC77D60A4116 /* KS3AbortMultipartUploadResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3AbortMultipartUploadResponse.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3AbortMultipartUploadResponse.h; sourceTree = "<group>"; };
  384 + F1CDEF207D2C172601BC300EBC1BF692 /* KS3BucketNameUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3BucketNameUtilities.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3BucketNameUtilities.h; sourceTree = "<group>"; };
  385 + F36E9E85B0612FBA7A1C948F33776465 /* KS3MD5Util.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3MD5Util.m; path = KS3YunSDK/KS3YunSDK/KSYCore.RunTime/KS3MD5Util.m; sourceTree = "<group>"; };
  386 + F4584580A754F2C8583C8B6828E05DDD /* KS3CreateBucketRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3CreateBucketRequest.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3CreateBucketRequest.h; sourceTree = "<group>"; };
  387 + F4FE62AACA9BCEC16E1475B0058F874F /* KS3Upload.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Upload.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.h; sourceTree = "<group>"; };
  388 + F56F2D9D2EEFD841A95479FECD194F53 /* KS3HeadObjectRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3HeadObjectRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3HeadObjectRequest.m; sourceTree = "<group>"; };
  389 + F6E8E720063F2E7543ED9B22A56B5CF3 /* KS3Upload.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Upload.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Upload.m; sourceTree = "<group>"; };
  390 + F93D732423383CCA96DEECF5399C70C6 /* KS3Part.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Part.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3Part.h; sourceTree = "<group>"; };
  391 + F9DAC33982A721A6E552050849069E43 /* KS3Client.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = KS3Client.h; path = KS3YunSDK/KS3YunSDK/KSYS3/KS3Client.h; sourceTree = "<group>"; };
  392 + FB9C8ACF8FBE2A1686CF4FCDF9D6AD79 /* Ks3SDK-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Ks3SDK-dummy.m"; sourceTree = "<group>"; };
  393 + FBA9C400556C6AC7A548E483CB376026 /* KS3SetBucketLoggingResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetBucketLoggingResponse.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3SetBucketLoggingResponse.m; sourceTree = "<group>"; };
  394 + FCC8C08A6805AE4B4DCACB7E342731CB /* KS3SetObjectGrantACLRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3SetObjectGrantACLRequest.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Object/KS3SetObjectGrantACLRequest.m; sourceTree = "<group>"; };
  395 + FEBCCE486962D9AD68E35DF2E70D14AC /* KS3Bucket.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3Bucket.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Service/KS3Bucket.m; sourceTree = "<group>"; };
  396 + FFCA8E5B9B88BEC11825277F8C75FB7B /* KS3ObjectSummary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = KS3ObjectSummary.m; path = KS3YunSDK/KS3YunSDK/KSYS3/KSYModel/Bucket/KS3ObjectSummary.m; sourceTree = "<group>"; };
  397 +/* End PBXFileReference section */
  398 +
  399 +/* Begin PBXFrameworksBuildPhase section */
  400 + 0384DE14766767DEC94DC18AF1677327 /* Frameworks */ = {
  401 + isa = PBXFrameworksBuildPhase;
  402 + buildActionMask = 2147483647;
  403 + files = (
  404 + 2456F167BF900A7FA1DB1DA42D9C8C0A /* Foundation.framework in Frameworks */,
  405 + );
  406 + runOnlyForDeploymentPostprocessing = 0;
  407 + };
  408 + 6E2B0BEDFED85D6EB5B7EE6FA47C8DC8 /* Frameworks */ = {
  409 + isa = PBXFrameworksBuildPhase;
  410 + buildActionMask = 2147483647;
  411 + files = (
  412 + 673DCE267712A522F66049908DD8D396 /* Foundation.framework in Frameworks */,
  413 + );
  414 + runOnlyForDeploymentPostprocessing = 0;
  415 + };
  416 +/* End PBXFrameworksBuildPhase section */
  417 +
  418 +/* Begin PBXGroup section */
  419 + 10450CAE7ED0ED6197594CFB283D2A15 /* Pods-KS3SDKDemo */ = {
  420 + isa = PBXGroup;
  421 + children = (
  422 + 04F83304A2E06513F5C18456980389F9 /* Pods-KS3SDKDemo-acknowledgements.markdown */,
  423 + E6C9752CB0231F571A6AF01FF7186B88 /* Pods-KS3SDKDemo-acknowledgements.plist */,
  424 + 97863A099DD4C34098C3A880F3445FAA /* Pods-KS3SDKDemo-dummy.m */,
  425 + 9E996AB713CDF2F0732D24C11FA52C25 /* Pods-KS3SDKDemo-frameworks.sh */,
  426 + 17EAAB93804A7C2449822A5CA439796B /* Pods-KS3SDKDemo-resources.sh */,
  427 + 937F8C893F4237D5C9AF6960BDF0D3FC /* Pods-KS3SDKDemo.debug.xcconfig */,
  428 + 0258B8D9FBCB6E96A18FDC8067CF357B /* Pods-KS3SDKDemo.release.xcconfig */,
  429 + );
  430 + name = "Pods-KS3SDKDemo";
  431 + path = "Target Support Files/Pods-KS3SDKDemo";
  432 + sourceTree = "<group>";
  433 + };
  434 + 2244C0A3F97C0444003693D315F7187E /* Ks3SDK */ = {
  435 + isa = PBXGroup;
  436 + children = (
  437 + E59CC657635E1112400395FF2E9FE697 /* KS3AbortMultipartUploadRequest.h */,
  438 + DED26E39303371C2ECF4F8B676C524AF /* KS3AbortMultipartUploadRequest.m */,
  439 + F0DF090507CC6403A409EC77D60A4116 /* KS3AbortMultipartUploadResponse.h */,
  440 + 6BF3C098D1571A79186B80E5E75E9FE6 /* KS3AbortMultipartUploadResponse.m */,
  441 + 92C4F771692181031616FB00E9EB6854 /* KS3AbstractPutRequest.h */,
  442 + A200159BD7D0F9529B8BFE8288BB1F06 /* KS3AbstractPutRequest.m */,
  443 + 21EFEB74E1D7F9BABDA52A28A3E82612 /* KS3AbstractWebServiceClient.h */,
  444 + 12E8B7B3A7CA2AC807B54BF1303E7EB4 /* KS3AbstractWebServiceClient.m */,
  445 + E4F72772BF85572BC9FE0BBA2F6BD120 /* KS3AccessControlList.h */,
  446 + 45E83D8FB93E7C4899F979A5C6CD5CDF /* KS3AccessControlList.m */,
  447 + 4CE003D5A6D84AD6E27933D2F948F94D /* KS3AuthUtils.h */,
  448 + 282086C1438794BEE1F55F310424FA2B /* KS3AuthUtils.m */,
  449 + D97E4668B99B9593C1C0C45C56CA87FD /* KS3Bucket.h */,
  450 + FEBCCE486962D9AD68E35DF2E70D14AC /* KS3Bucket.m */,
  451 + D1CF5F7D9C93E9A171AE3E16DDE65FA8 /* KS3BucketACLResult.h */,
  452 + D5E8C91BEFEF19161A2BEC4503716AE7 /* KS3BucketACLResult.m */,
  453 + E5EB025F2764D28A5C05E299BB72960D /* KS3BucketACLXMLParser.h */,
  454 + 6E2B230F4D37F9B5F161265B9F1863F7 /* KS3BucketACLXMLParser.m */,
  455 + F1CDEF207D2C172601BC300EBC1BF692 /* KS3BucketNameUtilities.h */,
  456 + 9DF17755770A04CFED26AF90177EF022 /* KS3BucketNameUtilities.m */,
  457 + 6E301A6C98B84E2536A81154F4F60F66 /* KS3BucketObject.h */,
  458 + E88BA8F8EA1FE41441E85A21A90F20E4 /* KS3BucketObject.m */,
  459 + F9DAC33982A721A6E552050849069E43 /* KS3Client.h */,
  460 + 8AD28770169211A9589268076ED6F410 /* KS3Client.m */,
  461 + A55E7D7FA446B40AA3A201A6789607F3 /* KS3ClientException.h */,
  462 + 3001A5B02820A7685EBB5E772B44F6B5 /* KS3ClientException.m */,
  463 + E7F2045FA41767555C205538C73B8368 /* KS3CompleteMultipartUploadRequest.h */,
  464 + AEED845619E1065E85AB1808033F6AD8 /* KS3CompleteMultipartUploadRequest.m */,
  465 + 6B7761ADA6F116A75243AA0D8AAA3102 /* KS3CompleteMultipartUploadResponse.h */,
  466 + 54FDB2CCE959195E52AE7D09B58BFB53 /* KS3CompleteMultipartUploadResponse.m */,
  467 + 542AAF95AF0DD2C1F46BF827FB276303 /* KS3CompleteMultipartUploadResult.h */,
  468 + 339DD48EDBEBAE45A87E3B99CA35AB89 /* KS3CompleteMultipartUploadResult.m */,
  469 + EC2430A8615E0C462BE9AAF471508197 /* KS3Constants.h */,
  470 + F4584580A754F2C8583C8B6828E05DDD /* KS3CreateBucketRequest.h */,
  471 + BE7FB9C306612DCFBB73BCC46D7D9011 /* KS3CreateBucketRequest.m */,
  472 + A4892EA63288E75FB50EE6E79EC8B7C6 /* KS3CreateBucketResponse.h */,
  473 + 59B243FFE0CCB104C821B80BCEB6D27B /* KS3CreateBucketResponse.m */,
  474 + CB5931A6BD1BCE65A51BD0F10D67EE60 /* KS3Credentials.h */,
  475 + 8639900AF2A65D916E46748F8EB19E17 /* KS3Credentials.m */,
  476 + 96DEEAC9F61E6BA0CCE9518F22C17736 /* KS3DeleteBucketRequest.h */,
  477 + 9625D87253845B536CD1BE3EB6EE375E /* KS3DeleteBucketRequest.m */,
  478 + E27E3DA2241BCF91D5FCA4C4025B570E /* KS3DeleteBucketResponse.h */,
  479 + 1CD1220AAF43B22E2F36DCCE7C8D06AF /* KS3DeleteBucketResponse.m */,
  480 + 00295F843D77BC9DD7E95BBC91A2ECAB /* KS3DeleteObjectRequest.h */,
  481 + 234B282D8871514861EE0AF095BABDCB /* KS3DeleteObjectRequest.m */,
  482 + 1F4B3E93472652A92DB31408B1363BD6 /* KS3DeleteObjectResponse.h */,
  483 + 76D8C2BBF84A2BBF0580CF0DFB99B186 /* KS3DeleteObjectResponse.m */,
  484 + 3F3C1E0EC8FC9E1969C04941E8522905 /* KS3DownLoad.h */,
  485 + 001B1D2DBEFE7A70B8B15B922E93E5C6 /* KS3DownLoad.m */,
  486 + EE88C6EB6CA6FB6C296344FBB7149BD6 /* KS3ErrorHandler.h */,
  487 + AEA566B3488C468C24B73B3B291FEED3 /* KS3ErrorHandler.m */,
  488 + 09E2873AB05A9756074CC9BB3BD472FC /* KS3GetACLRequest.h */,
  489 + 58A13081230750338D08FB45DC93CE89 /* KS3GetACLRequest.m */,
  490 + EB08EB9471E2DF0F7660DEF8C9F9A5C8 /* KS3GetACLResponse.h */,
  491 + 8E3DA17B8B365B043AD2E6B158E20077 /* KS3GetACLResponse.m */,
  492 + 190430CCBC2E1C742E36AF6CEF07C27D /* KS3GetBucketLoggingRequest.h */,
  493 + 9C0427F35CE175CC9B9D05B1B275FC23 /* KS3GetBucketLoggingRequest.m */,
  494 + B67D0243FB6075327C97D4E75C14108E /* KS3GetBucketLoggingResponse.h */,
  495 + E8C96C5EDE45F128555DFDFA6993AEA2 /* KS3GetBucketLoggingResponse.m */,
  496 + AC8C95552C1C5E9491548EEB2E49CF6D /* KS3GetObjectACLRequest.h */,
  497 + E2E9E5E161D78BE99B19680E4013219D /* KS3GetObjectACLRequest.m */,
  498 + 64415A03B1B28D135076F56E564E3521 /* KS3GetObjectACLResponse.h */,
  499 + B428A7EB6E1F3E420D576DA5EE4E7F8D /* KS3GetObjectACLResponse.m */,
  500 + 7AB06D81E6FBC1A461D417713ABEA86D /* KS3GetObjectRequest.h */,
  501 + 1867F5F806278E892F6EA26144A3246B /* KS3GetObjectRequest.m */,
  502 + BC3924F0529B5EFB93F561BE0E133094 /* KS3GetObjectResponse.h */,
  503 + 9643394B0D7F15C6C156A35E532DCDF7 /* KS3GetObjectResponse.m */,
  504 + ED39DD3153F95A50F4497A86604752EB /* KS3Grant.h */,
  505 + 8808028D324FD3153F27C4889282B0D8 /* KS3Grant.m */,
  506 + 351C95E9B5210C3A34F7DE45926B3C3D /* KS3GrantAccessControlList.h */,
  507 + 81384540B73C340C0884E7A0FE88A1C1 /* KS3GrantAccessControlList.m */,
  508 + 707CCF0D13833B92FEE73B8136FCCC30 /* KS3HeadBucketRequest.h */,
  509 + E3C23A55E5FF7CC65C39CEF3ECBDDD92 /* KS3HeadBucketRequest.m */,
  510 + 238D3B7F2746ED8643D0E29958CCBFA7 /* KS3HeadBucketResponse.h */,
  511 + C72BD2304D746A3D2F5932A55C2A547C /* KS3HeadBucketResponse.m */,
  512 + A73ED96D9DBD2DD9F7CF5B696A882FB8 /* KS3HeadObjectRequest.h */,
  513 + F56F2D9D2EEFD841A95479FECD194F53 /* KS3HeadObjectRequest.m */,
  514 + 6663980868812A737ED7A3505A6CA091 /* KS3HeadObjectResponse.h */,
  515 + C7AA6C3C38545F5C337E0B529E4E33E5 /* KS3HeadObjectResponse.m */,
  516 + 6550D70A7FAFEA03B3A65F41C65762A7 /* KS3InitiateMultipartUploadRequest.h */,
  517 + 208737CFD301A664D9D6BEC6D5487C33 /* KS3InitiateMultipartUploadRequest.m */,
  518 + 8A0C050B5ED769338F44C4620C1CEB71 /* KS3InitiateMultipartUploadResponse.h */,
  519 + B14750543CB775DD34AC8669452EB139 /* KS3InitiateMultipartUploadResponse.m */,
  520 + 61250E7FD2917E7D7318618FEBBBAA77 /* KS3InitiateMultipartUploadResult.h */,
  521 + C3E5644AB833D45595984EBC6F10193D /* KS3InitiateMultipartUploadResult.m */,
  522 + 32EE86D89F6186D65FE51495C7C9188A /* KS3InitiateMultipartUploadXMLParser.h */,
  523 + 80CCC2E8A8057A24DC291F47BF9FAE0A /* KS3InitiateMultipartUploadXMLParser.m */,
  524 + A093453D3C973CA86362A56018762E18 /* KS3ListBucketsRequest.h */,
  525 + EF0280A7CEEE7C30913D583B01A8D425 /* KS3ListBucketsRequest.m */,
  526 + 1A71A824849284998716A12F60D91893 /* KS3ListBucketsResponse.h */,
  527 + E51FA29EDE85EA69C734616CE1F16BE2 /* KS3ListBucketsResponse.m */,
  528 + 8D8A88B3F5CEDF8D236F38293695C8EB /* KS3ListBucketsResult.h */,
  529 + DEBA81D6EAEF27E1A690CF02D9ACAA01 /* KS3ListBucketsResult.m */,
  530 + 838489FE9792086888A6A1C8F1F63A85 /* KS3ListBucketsXMLParser.h */,
  531 + 00287004427A15D6DA7565F3A8349C5A /* KS3ListBucketsXMLParser.m */,
  532 + C6508BF7534F209B80318C7DA04B3675 /* KS3ListObjectsRequest.h */,
  533 + E639654AB212218A87CE5F1EA120C847 /* KS3ListObjectsRequest.m */,
  534 + 8094F5D8A1535493B770D6FCED7B95BD /* KS3ListObjectsResponse.h */,
  535 + 0977D0682351BF0B28C4D912B0B5F7E9 /* KS3ListObjectsResponse.m */,
  536 + 3058D771BD76D0B6F184E484D39DF70E /* KS3ListObjectsResult.h */,
  537 + 72B4B4301A2F052EAE8F80B0F2FF09FE /* KS3ListObjectsResult.m */,
  538 + 97C738107C3BEAC34EA8B070CDA84DB4 /* KS3ListObjectsXMLPrarser.h */,
  539 + 6A1FA245D8885C7C99EFF823320F789D /* KS3ListObjectsXMLPrarser.m */,
  540 + B96479C67EF97D9ACC28889965607759 /* KS3ListPartsRequest.h */,
  541 + 20E6C7FEB7C10DE8BE35D4318B5A4998 /* KS3ListPartsRequest.m */,
  542 + B16C8B97FA01C5066E22A3EE4F58E829 /* KS3ListPartsResponse.h */,
  543 + 6592191393193A4B15033D8F88CB8C2E /* KS3ListPartsResponse.m */,
  544 + 4CC90C081A79C6C117FEC89896C93E7E /* KS3ListPartsResult.h */,
  545 + 33966032BFE4600761F020B2202345C3 /* KS3ListPartsResult.m */,
  546 + 308A4CECA35C0D636D9EC1A6ECA22ACF /* KS3ListPartsResultXMLParser.h */,
  547 + D2A115B9053364E4BC684AA2DFC6A269 /* KS3ListPartsResultXMLParser.m */,
  548 + DB5CC77C8CA15816B141C2EE4835FE43 /* KS3MD5Util.h */,
  549 + F36E9E85B0612FBA7A1C948F33776465 /* KS3MD5Util.m */,
  550 + 1A304F6A51B577A2F0F8B554F29FE60C /* KS3MultipartUpload.h */,
  551 + 4FE40DEE975EC9B8F5D5B6AB9ABD6C1A /* KS3MultipartUpload.m */,
  552 + BFEA23F27B1D8D09CB4E727CBB8A76C1 /* KS3ObjectACLXMLParser.h */,
  553 + 488E7972F0E14B2A8A18F5BA53B8057D /* KS3ObjectACLXMLParser.m */,
  554 + 0DF8A004C752608C3E8128C2C9D917A3 /* KS3ObjectSummary.h */,
  555 + FFCA8E5B9B88BEC11825277F8C75FB7B /* KS3ObjectSummary.m */,
  556 + 1115EFC72E20133ABC81DEEAA8E11D01 /* KS3Owner.h */,
  557 + 273BE8FAD908E5970FF2A827A862E08B /* KS3Owner.m */,
  558 + F93D732423383CCA96DEECF5399C70C6 /* KS3Part.h */,
  559 + 485738248A9631FDBA098B4A9079EE5F /* KS3Part.m */,
  560 + 22204647482FE20AD51C027C57E74432 /* KS3PutObjectCopyRequest.h */,
  561 + 24BAE1C3DA88A0BED5B4BFAA42DF2513 /* KS3PutObjectCopyRequest.m */,
  562 + 9EB2EAB425C265479580AC4444F4851E /* KS3PutObjectCopyResponse.h */,
  563 + C97A99A9950F068090AF8CB39E2EA215 /* KS3PutObjectCopyResponse.m */,
  564 + 14861D0764D5D600368CDF8AB883FA55 /* KS3PutObjectRequest.h */,
  565 + 79A0D8CB8CCE5C0281B8175818258B93 /* KS3PutObjectRequest.m */,
  566 + B260A074E1F79E4E00697D5D7099D065 /* KS3PutObjectResponse.h */,
  567 + C6E8195E5B341D6D2EA073D318C194D5 /* KS3PutObjectResponse.m */,
  568 + 6D33D75A48DF90EAA04360F99462CC33 /* KS3Request.h */,
  569 + 6AD42B0908C144DBD5227511A64BEBE3 /* KS3Request.m */,
  570 + 32C0A4C28045F768C0079C7547744699 /* KS3Response.h */,
  571 + EB7913C5BC1BC9E4F99FBD572C86B037 /* KS3Response.m */,
  572 + 97428595C5980A6F9978FED2FCD6B430 /* KS3ResponseHeaderOverrides.h */,
  573 + 71D62A4A5FF6A134A03A051619CC75BC /* KS3ResponseHeaderOverrides.m */,
  574 + 54292A0659DF5EE135999ADD04C57E29 /* KS3SDKUtil.h */,
  575 + 2B8F46222934E72D700B438C1D605F35 /* KS3SDKUtil.m */,
  576 + EF4CCAA5E766727CF93F180382B97900 /* KS3ServiceRequest.h */,
  577 + 096AE6267B0879DD5DA6EF833BDE1BEC /* KS3ServiceRequest.m */,
  578 + 011FE3858F6FACB9C85D985FF62F24A1 /* KS3ServiceResponse.h */,
  579 + 2F24D60B09D175A5FE5867D7A4EA7348 /* KS3ServiceResponse.m */,
  580 + C4A88D5CB925881D1D3AF42799EA301F /* KS3SetACLRequest.h */,
  581 + C6C33D99E17307AFDDA38AB4CDA255EB /* KS3SetACLRequest.m */,
  582 + 42959F4CD9E0F8B0C072B4AED711B2AF /* KS3SetACLResponse.h */,
  583 + 25D30D104C8605AB1481622C4E9B9126 /* KS3SetACLResponse.m */,
  584 + DAD2147A9F4106CD969BE5936BFFB335 /* KS3SetBucketLoggingRequest.h */,
  585 + EFE59DFD419735F99781B9C5F727BF60 /* KS3SetBucketLoggingRequest.m */,
  586 + D74205DA028EC7C34C6C06265BF46F6F /* KS3SetBucketLoggingResponse.h */,
  587 + FBA9C400556C6AC7A548E483CB376026 /* KS3SetBucketLoggingResponse.m */,
  588 + 1A7E2AE75FF78B200909055607835FA7 /* KS3SetGrantACLRequest.h */,
  589 + AA8BDE878494543FCBBA13BBFD9935D0 /* KS3SetGrantACLRequest.m */,
  590 + 9206C6E5BB5914FF82C632D5BB591D31 /* KS3SetGrantACLResponse.h */,
  591 + E5DCC6DF4B43135E32980CBC6AB111DC /* KS3SetGrantACLResponse.m */,
  592 + AE41E3E5C5EE57CA16D4A9A3D1A91A40 /* KS3SetObjectACLRequest.h */,
  593 + CBE33D863691AD21ED59B4DADFF2FB06 /* KS3SetObjectACLRequest.m */,
  594 + 379A67B432D836127B4FB23CA7D727CB /* KS3SetObjectACLResponse.h */,
  595 + C5801DC0391BFD12B6F11800960BB93D /* KS3SetObjectACLResponse.m */,
  596 + 74D09221BF115067D6DC96A4EECB086B /* KS3SetObjectGrantACLRequest.h */,
  597 + FCC8C08A6805AE4B4DCACB7E342731CB /* KS3SetObjectGrantACLRequest.m */,
  598 + E41ED692AF01F994E6FD365A6ACBC4B2 /* KS3SetObjectGrantACLResponse.h */,
  599 + 4BE3F36547E1961EDE22A046ADC6D601 /* KS3SetObjectGrantACLResponse.m */,
  600 + F4FE62AACA9BCEC16E1475B0058F874F /* KS3Upload.h */,
  601 + F6E8E720063F2E7543ED9B22A56B5CF3 /* KS3Upload.m */,
  602 + 8773222E674FA91A1813B10C090A0DB4 /* KS3UploadManager.h */,
  603 + 5F9F7DB8941940A32A6C254CDDD038DB /* KS3UploadManager.m */,
  604 + 094DDCB0BE44C03DB592CEB34C500BB3 /* KS3UploadPartRequest.h */,
  605 + 76FAB5EEAF325B51B13B562249C466CA /* KS3UploadPartRequest.m */,
  606 + 8233887A30932FF0F5BD7E7E96ACC4F8 /* KS3UploadPartResponse.h */,
  607 + 4A639F773BB0039F8A95DDFFC8756374 /* KS3UploadPartResponse.m */,
  608 + DD45A0B978555EC844787A8BF56573E1 /* KS3UploadRequest.h */,
  609 + 629C5CAEB0A9C75C840A528924375652 /* KS3UploadRequest.m */,
  610 + B5E8E77D7FD08F866E3CEA5E7B00E1B9 /* KS3URLRequest.h */,
  611 + ECD5236E6BFDA5882253BA0DF69F02BB /* KS3URLRequest.m */,
  612 + DC506D7CD3F3692CB65424E69B32EF4D /* KS3WebServiceClient.h */,
  613 + 3C57D79CFD49A2C2220674C003717F7C /* KS3WebServiceClient.m */,
  614 + 228C9BA667D373C4343270F2EAA6ADD2 /* KS3YunSDK.h */,
  615 + 46E18706B8F386AC5E64E41CA04B5C57 /* Support Files */,
  616 + );
  617 + name = Ks3SDK;
  618 + path = Ks3SDK;
  619 + sourceTree = "<group>";
  620 + };
  621 + 2E28D8982B5D54793895071991971A60 /* Products */ = {
  622 + isa = PBXGroup;
  623 + children = (
  624 + 17F446E233CDDD1A1077F3D053F8F942 /* libKs3SDK.a */,
  625 + 45515BCC9266D22D5ED69E0490CA081E /* libPods-KS3SDKDemo.a */,
  626 + );
  627 + name = Products;
  628 + sourceTree = "<group>";
  629 + };
  630 + 3932AC7BEC5D353352D5B78AA6B5D310 /* Pods */ = {
  631 + isa = PBXGroup;
  632 + children = (
  633 + 2244C0A3F97C0444003693D315F7187E /* Ks3SDK */,
  634 + );
  635 + name = Pods;
  636 + sourceTree = "<group>";
  637 + };
  638 + 46E18706B8F386AC5E64E41CA04B5C57 /* Support Files */ = {
  639 + isa = PBXGroup;
  640 + children = (
  641 + A075D9F0DD5B2EF4F8B5C21385FA784A /* Ks3SDK.xcconfig */,
  642 + FB9C8ACF8FBE2A1686CF4FCDF9D6AD79 /* Ks3SDK-dummy.m */,
  643 + 2F622DDA8BC57A0C1E8E7B41E7223438 /* Ks3SDK-prefix.pch */,
  644 + );
  645 + name = "Support Files";
  646 + path = "../Target Support Files/Ks3SDK";
  647 + sourceTree = "<group>";
  648 + };
  649 + 5EE4F8FAE14D98F749E5E9B8FF058ED9 /* Targets Support Files */ = {
  650 + isa = PBXGroup;
  651 + children = (
  652 + 10450CAE7ED0ED6197594CFB283D2A15 /* Pods-KS3SDKDemo */,
  653 + );
  654 + name = "Targets Support Files";
  655 + sourceTree = "<group>";
  656 + };
  657 + 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */ = {
  658 + isa = PBXGroup;
  659 + children = (
  660 + CBB3DE36805AF21409EC968A9691732F /* Foundation.framework */,
  661 + );
  662 + name = iOS;
  663 + sourceTree = "<group>";
  664 + };
  665 + 7DB346D0F39D3F0E887471402A8071AB = {
  666 + isa = PBXGroup;
  667 + children = (
  668 + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
  669 + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
  670 + 3932AC7BEC5D353352D5B78AA6B5D310 /* Pods */,
  671 + 2E28D8982B5D54793895071991971A60 /* Products */,
  672 + 5EE4F8FAE14D98F749E5E9B8FF058ED9 /* Targets Support Files */,
  673 + );
  674 + sourceTree = "<group>";
  675 + };
  676 + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
  677 + isa = PBXGroup;
  678 + children = (
  679 + 7531C8F8DE19F1AA3C8A7AC97A91DC29 /* iOS */,
  680 + );
  681 + name = Frameworks;
  682 + sourceTree = "<group>";
  683 + };
  684 +/* End PBXGroup section */
  685 +
  686 +/* Begin PBXHeadersBuildPhase section */
  687 + 67D739A17636384C475821B0757197F1 /* Headers */ = {
  688 + isa = PBXHeadersBuildPhase;
  689 + buildActionMask = 2147483647;
  690 + files = (
  691 + 9CA9E9FB0406C4A4C2840BE3AF5DC19A /* KS3AbortMultipartUploadRequest.h in Headers */,
  692 + 7B3CC1862BDA191A304EB27D90AED795 /* KS3AbortMultipartUploadResponse.h in Headers */,
  693 + C2FDEB0655A0AEC863ED6959F47BEAE6 /* KS3AbstractPutRequest.h in Headers */,
  694 + F37F0F96B3B4925CB39138677D232EF7 /* KS3AbstractWebServiceClient.h in Headers */,
  695 + 61EADC4B17584325F98459D311420E73 /* KS3AccessControlList.h in Headers */,
  696 + DA111D0713EFE0B97CDD9F70C7AEB8F1 /* KS3AuthUtils.h in Headers */,
  697 + A42623D29FF9B9A4C634151C89B8E6BD /* KS3Bucket.h in Headers */,
  698 + 889890C800E78F48185704BE547BF97A /* KS3BucketACLResult.h in Headers */,
  699 + 9D0E4311159EF634610B2E7605EF4F51 /* KS3BucketACLXMLParser.h in Headers */,
  700 + 7F0B11A5EBFA26251F0713C9B3F63DEE /* KS3BucketNameUtilities.h in Headers */,
  701 + CCF340E86745A61BECC5157C8ADDF70B /* KS3BucketObject.h in Headers */,
  702 + 56AF8DA79381D7E7C84670C8CC23DBA3 /* KS3Client.h in Headers */,
  703 + A6934AB9346C2F7496B45F321241BAD0 /* KS3ClientException.h in Headers */,
  704 + 44223920689569EE8E1D57F067F78CE1 /* KS3CompleteMultipartUploadRequest.h in Headers */,
  705 + 2E9DD306EF25908CA1124BCB14D83E88 /* KS3CompleteMultipartUploadResponse.h in Headers */,
  706 + 103B89B3F71B8569765255AFEFC02537 /* KS3CompleteMultipartUploadResult.h in Headers */,
  707 + 84287D054B0EBDB1B76489CA93EE43EE /* KS3Constants.h in Headers */,
  708 + F59BC2C585A612163D17987A125233E3 /* KS3CreateBucketRequest.h in Headers */,
  709 + 82AEA10E1B48219980FCC31C3F59A87D /* KS3CreateBucketResponse.h in Headers */,
  710 + EDFA69FDEFA347336F0D80F4E9EF7E9B /* KS3Credentials.h in Headers */,
  711 + 2C49E0CE304DC27F183A794CCDAAECA9 /* KS3DeleteBucketRequest.h in Headers */,
  712 + CF5DD58C00ED09E5CE3E482CA327A957 /* KS3DeleteBucketResponse.h in Headers */,
  713 + 05F4B66023414AD51B3FEE40714BCF4F /* KS3DeleteObjectRequest.h in Headers */,
  714 + 9D8A97856C2C732C5D0ECE667B948D1F /* KS3DeleteObjectResponse.h in Headers */,
  715 + 5A47100F9AA70EC4DECD951136ACAB87 /* KS3DownLoad.h in Headers */,
  716 + BC2E64990B2FECC3455769E8DF3FDB1F /* KS3ErrorHandler.h in Headers */,
  717 + 3E4727A23BB5B909C2FD9E754CB3D147 /* KS3GetACLRequest.h in Headers */,
  718 + 6063D98285C27F4E2AD9263BDCB19634 /* KS3GetACLResponse.h in Headers */,
  719 + F95A3C41F6116C05004FA85DB32E976A /* KS3GetBucketLoggingRequest.h in Headers */,
  720 + D2E92BAB1A28EB8EF69AD2FFF409A49D /* KS3GetBucketLoggingResponse.h in Headers */,
  721 + 0D22ECE4ECBB2C6423E7EAB99F7A9669 /* KS3GetObjectACLRequest.h in Headers */,
  722 + 051794912FED434CC1163510B7A6D676 /* KS3GetObjectACLResponse.h in Headers */,
  723 + 6F74EDC9C921BF0EAC162701A38BE66C /* KS3GetObjectRequest.h in Headers */,
  724 + B147D64BB1DDBD2094A9D1D1ADB0CC37 /* KS3GetObjectResponse.h in Headers */,
  725 + E27005195A8058B5B8A780033D386978 /* KS3Grant.h in Headers */,
  726 + 188D87A57EEF31E66DDA6224D467C6D8 /* KS3GrantAccessControlList.h in Headers */,
  727 + 0E895C2FD29006B1CACC8D01DB6CA546 /* KS3HeadBucketRequest.h in Headers */,
  728 + CB8433B15B18E425C89F4B5BDC095C3D /* KS3HeadBucketResponse.h in Headers */,
  729 + F0CECE49BF62E2E3321C7368FFEE59F9 /* KS3HeadObjectRequest.h in Headers */,
  730 + BC8BE45CD5F9F09D3996572B8536E400 /* KS3HeadObjectResponse.h in Headers */,
  731 + D77F4F55A51276CBC21DBC5E5B0DDB10 /* KS3InitiateMultipartUploadRequest.h in Headers */,
  732 + 371590B0DC3F7D5BE845BCC3666B99D8 /* KS3InitiateMultipartUploadResponse.h in Headers */,
  733 + 3D08B96D98B5073CD48F124860C87CFE /* KS3InitiateMultipartUploadResult.h in Headers */,
  734 + DDD421463474E95EF6ADCA4A8E22AFC9 /* KS3InitiateMultipartUploadXMLParser.h in Headers */,
  735 + 270CFB5E729B040BB8C3B38AF815D89E /* KS3ListBucketsRequest.h in Headers */,
  736 + 613248DC8129F0B8AA558A1E609CEF7E /* KS3ListBucketsResponse.h in Headers */,
  737 + D9F6953278DF3B045F3C01A942FE31B0 /* KS3ListBucketsResult.h in Headers */,
  738 + D3FE143C6DD1849BED7902EB5E2C031F /* KS3ListBucketsXMLParser.h in Headers */,
  739 + A3E44C336DC5AC532CC144E94852DA02 /* KS3ListObjectsRequest.h in Headers */,
  740 + 6E520229A7D475B3350F548E568EFD5C /* KS3ListObjectsResponse.h in Headers */,
  741 + 2548BB104AF4F52BAC1E3FD918F2420A /* KS3ListObjectsResult.h in Headers */,
  742 + BAA8AA5CB9F364714ACB4F0C1674CB3F /* KS3ListObjectsXMLPrarser.h in Headers */,
  743 + 515585CB92C12CAA99FAAB3776E5155C /* KS3ListPartsRequest.h in Headers */,
  744 + 5C782CD78F5BE7988749B27D879C34E2 /* KS3ListPartsResponse.h in Headers */,
  745 + 2D3D19C92173BA322AB33D607911E5B9 /* KS3ListPartsResult.h in Headers */,
  746 + 9650FE35F96A003F8597AE5DB6DB4741 /* KS3ListPartsResultXMLParser.h in Headers */,
  747 + 9C215CC1678AE68429EEAEBB6BC290FE /* KS3MD5Util.h in Headers */,
  748 + C4107BA18D4B14D3E5DBD8D40FDBA1D6 /* KS3MultipartUpload.h in Headers */,
  749 + 88DD7817C6D3AD58721F3DF0EACDF543 /* KS3ObjectACLXMLParser.h in Headers */,
  750 + 5C136AC28C6066B49BF78EF30861D62C /* KS3ObjectSummary.h in Headers */,
  751 + 3F24120D4A65EC13254033ABCA67CB32 /* KS3Owner.h in Headers */,
  752 + 842E776BE5BA1869392898D925E8DA89 /* KS3Part.h in Headers */,
  753 + DCD055F9FEB654A3CB3C520CB5A8DF02 /* KS3PutObjectCopyRequest.h in Headers */,
  754 + 525797A3745DEBC2B675BC762A27E458 /* KS3PutObjectCopyResponse.h in Headers */,
  755 + F41F5ED15CA0DC06838D616855A8017E /* KS3PutObjectRequest.h in Headers */,
  756 + BEF26098721DD3795D15AB1096EF8237 /* KS3PutObjectResponse.h in Headers */,
  757 + D44350AB0B0B3EF8089E4551C158392D /* KS3Request.h in Headers */,
  758 + CED769315EFFB38F6C3B9B2D5841B3D7 /* KS3Response.h in Headers */,
  759 + A42B9451DEFC3A5A861686454B8D9600 /* KS3ResponseHeaderOverrides.h in Headers */,
  760 + 31AD55F6B5C6960CE74D998C224D9C6C /* KS3SDKUtil.h in Headers */,
  761 + 7DB204122DBAC1C4F5EFD0087AC5CD3E /* KS3ServiceRequest.h in Headers */,
  762 + 7074DB63067F9D6C657D7D946F33105F /* KS3ServiceResponse.h in Headers */,
  763 + 91F62307F36302ED82620E196A917620 /* KS3SetACLRequest.h in Headers */,
  764 + CD7836BF6918DF077135A18595CFBCE5 /* KS3SetACLResponse.h in Headers */,
  765 + 28E5F70B2025F122F5329BDA941E0B1F /* KS3SetBucketLoggingRequest.h in Headers */,
  766 + 356E5FEEAF7CC7FD4254E12A831E41F9 /* KS3SetBucketLoggingResponse.h in Headers */,
  767 + 38453479795FF05B69AC99CF2C5ED8CF /* KS3SetGrantACLRequest.h in Headers */,
  768 + 9DE1DFBFB809D2288D65DC6A5A07F3A4 /* KS3SetGrantACLResponse.h in Headers */,
  769 + F105A03D3B60B3EBC164B81698AAF736 /* KS3SetObjectACLRequest.h in Headers */,
  770 + E9A8DB60A072FA3106164A4004F4148D /* KS3SetObjectACLResponse.h in Headers */,
  771 + 2953496CC2B22D67BDFFC6363C6D2BD5 /* KS3SetObjectGrantACLRequest.h in Headers */,
  772 + E4E63EAC6F131378947230E8FDC4AFFD /* KS3SetObjectGrantACLResponse.h in Headers */,
  773 + AAD160A6B3BB4B44F6B394D155F1DC8C /* KS3Upload.h in Headers */,
  774 + 1F1AE82285C0AB1E89275017C861D53C /* KS3UploadManager.h in Headers */,
  775 + FA479763A64A4148A3AE7BE031235B66 /* KS3UploadPartRequest.h in Headers */,
  776 + 30AA763D3EF397551B2EA6A1F1E32A80 /* KS3UploadPartResponse.h in Headers */,
  777 + 80DD22A549B117BB1385F4FB70847833 /* KS3UploadRequest.h in Headers */,
  778 + 67112CD60D5A0DF9ACC6362F78EF8842 /* KS3URLRequest.h in Headers */,
  779 + 7F35A988BE2995B8699907C7E5ED9C43 /* KS3WebServiceClient.h in Headers */,
  780 + 8FAAF80865D4BA210419B7E505819BD2 /* KS3YunSDK.h in Headers */,
  781 + );
  782 + runOnlyForDeploymentPostprocessing = 0;
  783 + };
  784 +/* End PBXHeadersBuildPhase section */
  785 +
  786 +/* Begin PBXNativeTarget section */
  787 + 95FC2A6E6601C839D6B4BD4B31ACA4FD /* Ks3SDK */ = {
  788 + isa = PBXNativeTarget;
  789 + buildConfigurationList = E7DD90243E3D72D1271158E30B764F63 /* Build configuration list for PBXNativeTarget "Ks3SDK" */;
  790 + buildPhases = (
  791 + 40A60721BF6CE43661DE844A69C32605 /* Sources */,
  792 + 6E2B0BEDFED85D6EB5B7EE6FA47C8DC8 /* Frameworks */,
  793 + 67D739A17636384C475821B0757197F1 /* Headers */,
  794 + );
  795 + buildRules = (
  796 + );
  797 + dependencies = (
  798 + );
  799 + name = Ks3SDK;
  800 + productName = Ks3SDK;
  801 + productReference = 17F446E233CDDD1A1077F3D053F8F942 /* libKs3SDK.a */;
  802 + productType = "com.apple.product-type.library.static";
  803 + };
  804 + B2CE65DA0288B635CC9364306C3C5972 /* Pods-KS3SDKDemo */ = {
  805 + isa = PBXNativeTarget;
  806 + buildConfigurationList = 63C38FA0D764BBE40687F0AC679FEF00 /* Build configuration list for PBXNativeTarget "Pods-KS3SDKDemo" */;
  807 + buildPhases = (
  808 + 1961270A6BD1F66966359581BE6A2A65 /* Sources */,
  809 + 0384DE14766767DEC94DC18AF1677327 /* Frameworks */,
  810 + );
  811 + buildRules = (
  812 + );
  813 + dependencies = (
  814 + 37C599DC0E69EFBDAD65471D946F5C1D /* PBXTargetDependency */,
  815 + );
  816 + name = "Pods-KS3SDKDemo";
  817 + productName = "Pods-KS3SDKDemo";
  818 + productReference = 45515BCC9266D22D5ED69E0490CA081E /* libPods-KS3SDKDemo.a */;
  819 + productType = "com.apple.product-type.library.static";
  820 + };
  821 +/* End PBXNativeTarget section */
  822 +
  823 +/* Begin PBXProject section */
  824 + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
  825 + isa = PBXProject;
  826 + attributes = {
  827 + LastSwiftUpdateCheck = 0730;
  828 + LastUpgradeCheck = 0700;
  829 + };
  830 + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
  831 + compatibilityVersion = "Xcode 3.2";
  832 + developmentRegion = English;
  833 + hasScannedForEncodings = 0;
  834 + knownRegions = (
  835 + en,
  836 + );
  837 + mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
  838 + productRefGroup = 2E28D8982B5D54793895071991971A60 /* Products */;
  839 + projectDirPath = "";
  840 + projectRoot = "";
  841 + targets = (
  842 + 95FC2A6E6601C839D6B4BD4B31ACA4FD /* Ks3SDK */,
  843 + B2CE65DA0288B635CC9364306C3C5972 /* Pods-KS3SDKDemo */,
  844 + );
  845 + };
  846 +/* End PBXProject section */
  847 +
  848 +/* Begin PBXSourcesBuildPhase section */
  849 + 1961270A6BD1F66966359581BE6A2A65 /* Sources */ = {
  850 + isa = PBXSourcesBuildPhase;
  851 + buildActionMask = 2147483647;
  852 + files = (
  853 + F12C35924E2F8C3E0B4C69E9ACC552FF /* Pods-KS3SDKDemo-dummy.m in Sources */,
  854 + );
  855 + runOnlyForDeploymentPostprocessing = 0;
  856 + };
  857 + 40A60721BF6CE43661DE844A69C32605 /* Sources */ = {
  858 + isa = PBXSourcesBuildPhase;
  859 + buildActionMask = 2147483647;
  860 + files = (
  861 + 73E168F9B0C38910F7A022166034145B /* KS3AbortMultipartUploadRequest.m in Sources */,
  862 + EEB806BB5BE40F2BCD348B069BF3D1A0 /* KS3AbortMultipartUploadResponse.m in Sources */,
  863 + AB88E1698414D43B08491DA9052454DA /* KS3AbstractPutRequest.m in Sources */,
  864 + 90193C1B5638C7EA17788C0276EF2231 /* KS3AbstractWebServiceClient.m in Sources */,
  865 + 1BF1DFF4968A6E2F271522B5E8143628 /* KS3AccessControlList.m in Sources */,
  866 + 98F03E6795EC0C2D68F8CBCE6B42768E /* KS3AuthUtils.m in Sources */,
  867 + DA5507CE4C62C933DC86FEDC9EAA89FE /* KS3Bucket.m in Sources */,
  868 + 9EA1D41D1EE183BBC8584BC74C65AA24 /* KS3BucketACLResult.m in Sources */,
  869 + 008868B2721F7DCB6ED5C9C3FCB9AB48 /* KS3BucketACLXMLParser.m in Sources */,
  870 + 11C3E39E8F39F4E52847D6C916A30D67 /* KS3BucketNameUtilities.m in Sources */,
  871 + 9297BBB0588A74307CDBD52168F063D0 /* KS3BucketObject.m in Sources */,
  872 + AA4F19EE0FA0C0FD3E802EC2230ADD9F /* KS3Client.m in Sources */,
  873 + 774D3FEC8BE7A1AC1D712F7053D4D0C0 /* KS3ClientException.m in Sources */,
  874 + 0C3967D19181AB774C5572162800C444 /* KS3CompleteMultipartUploadRequest.m in Sources */,
  875 + 451F69AD4B810140901BBFB2EA5E21BE /* KS3CompleteMultipartUploadResponse.m in Sources */,
  876 + 07AEBC2389175051896455B26204F5BA /* KS3CompleteMultipartUploadResult.m in Sources */,
  877 + C7AE888AA3184581924F3B72C214FDD1 /* KS3CreateBucketRequest.m in Sources */,
  878 + 46E592F5CBFA4BE0264328314F345FFA /* KS3CreateBucketResponse.m in Sources */,
  879 + D61489CF1341C38EA8290B0337C86972 /* KS3Credentials.m in Sources */,
  880 + E849BE4B5C26D0DC0672B2F293EE94D1 /* KS3DeleteBucketRequest.m in Sources */,
  881 + A6F93C105E04D6A011EADF9E252FA6B9 /* KS3DeleteBucketResponse.m in Sources */,
  882 + 35A93338A891A6E965BC9FFBEA5D25D2 /* KS3DeleteObjectRequest.m in Sources */,
  883 + 51C2BB487FE09097F9993EEC2F87B49F /* KS3DeleteObjectResponse.m in Sources */,
  884 + 98EBC53528694DCD2122AB12715EBC23 /* KS3DownLoad.m in Sources */,
  885 + 43A947FEF60F6DBF945378B12A0B846B /* KS3ErrorHandler.m in Sources */,
  886 + 620A654738585101C7C381DDBBF7350D /* KS3GetACLRequest.m in Sources */,
  887 + C3B5B602A635A6511EF7AF394282D5D0 /* KS3GetACLResponse.m in Sources */,
  888 + DE764F20C0EC415684FD49906918BB7E /* KS3GetBucketLoggingRequest.m in Sources */,
  889 + 72CD5D1D26A8AC427E58E7515017CF45 /* KS3GetBucketLoggingResponse.m in Sources */,
  890 + C10D1F76EE3678B27F26C4A93191EDE0 /* KS3GetObjectACLRequest.m in Sources */,
  891 + F1923ED2CE802CC21CAE26FC501DE6FA /* KS3GetObjectACLResponse.m in Sources */,
  892 + 4B9E921706C47D7D82835645B144F79F /* KS3GetObjectRequest.m in Sources */,
  893 + E9136460EE5ECC4C873B5197450268F0 /* KS3GetObjectResponse.m in Sources */,
  894 + 3FB707428B633241710AA92AADA2FEBE /* KS3Grant.m in Sources */,
  895 + 7794D5A8BCF03913691E5E10B9F91065 /* KS3GrantAccessControlList.m in Sources */,
  896 + 9DC0579C46A085FBDCC77D03269E7101 /* KS3HeadBucketRequest.m in Sources */,
  897 + 43D5E360B5E35E618E956AE81021BA4D /* KS3HeadBucketResponse.m in Sources */,
  898 + CB4F4B196F5F76F11024D8BAB6AB2669 /* KS3HeadObjectRequest.m in Sources */,
  899 + 788B9161E18ABEF211BFA25C922603C0 /* KS3HeadObjectResponse.m in Sources */,
  900 + 8567C6C4023BB8062023DD3E823D80C3 /* KS3InitiateMultipartUploadRequest.m in Sources */,
  901 + 88F08741E2AE04B9BFCABEED01E18D81 /* KS3InitiateMultipartUploadResponse.m in Sources */,
  902 + 4A3ACC77D3C8CDC06CDFFECC7E673F5C /* KS3InitiateMultipartUploadResult.m in Sources */,
  903 + 5679A2BBFC0446829FBD03E447857E78 /* KS3InitiateMultipartUploadXMLParser.m in Sources */,
  904 + 6D8AF4D84C301DC077DD9601605C5A08 /* KS3ListBucketsRequest.m in Sources */,
  905 + A5FB2BDD5E3CF2D2D2BFD3E046FD753E /* KS3ListBucketsResponse.m in Sources */,
  906 + 11B693CF4E9D98F66347EF9FC6079BC1 /* KS3ListBucketsResult.m in Sources */,
  907 + 01948084A8F457F061FB904C61E04383 /* KS3ListBucketsXMLParser.m in Sources */,
  908 + 98C36BECAD5FD7E58F75D1881C0096D8 /* KS3ListObjectsRequest.m in Sources */,
  909 + 16466EEEFA022707C0933A524F3D8737 /* KS3ListObjectsResponse.m in Sources */,
  910 + E64D73D9A51E4A70187656F0651571DE /* KS3ListObjectsResult.m in Sources */,
  911 + 498FC8D3E4CCB9EFA75310A92BC0EF47 /* KS3ListObjectsXMLPrarser.m in Sources */,
  912 + C6AA5F333B261D880C71DBF1C42FF50F /* KS3ListPartsRequest.m in Sources */,
  913 + 462141CAF4C85CEBCBFEE97A8B0ECA3D /* KS3ListPartsResponse.m in Sources */,
  914 + D47CF3247FF5D5138E799494199B4B50 /* KS3ListPartsResult.m in Sources */,
  915 + BE45EA1D439876DEFD995FB48972504D /* KS3ListPartsResultXMLParser.m in Sources */,
  916 + CF9F57F1662BD9D99FCDB4767D9E1DE8 /* KS3MD5Util.m in Sources */,
  917 + 465A067849770365903B8DE5B9183A9E /* KS3MultipartUpload.m in Sources */,
  918 + 753F593C42A711A80330B700869305F9 /* KS3ObjectACLXMLParser.m in Sources */,
  919 + 66E05417F3A6FE348A245BE937978EBB /* KS3ObjectSummary.m in Sources */,
  920 + 50892CCCAED4409239D1DD86BAB6B409 /* KS3Owner.m in Sources */,
  921 + 11120D05D691D144464423BE51577081 /* KS3Part.m in Sources */,
  922 + C4068E0D521CD8B564D737CF7F74255D /* KS3PutObjectCopyRequest.m in Sources */,
  923 + 4FCBEA2543FE53BFA1E22193C8EFD9D4 /* KS3PutObjectCopyResponse.m in Sources */,
  924 + C21E5F0536C3BD3E56623BA2E1317F2B /* KS3PutObjectRequest.m in Sources */,
  925 + BF1A161AB898532070069A10C2AEE03F /* KS3PutObjectResponse.m in Sources */,
  926 + A38B87ED1BA9451BFEDF7D952C7A115C /* KS3Request.m in Sources */,
  927 + 6E92E14B09638CCE79650F5A3B627D4F /* KS3Response.m in Sources */,
  928 + EC2A8D5A6FBF71E72BD76D68E8B42188 /* KS3ResponseHeaderOverrides.m in Sources */,
  929 + 8BBF5086DE6CADE807024EE54B0F583F /* Ks3SDK-dummy.m in Sources */,
  930 + 26417D39932C9AB284BB286CD7C4B5A0 /* KS3SDKUtil.m in Sources */,
  931 + 7B3E497E577F149784683971D5C7C0F6 /* KS3ServiceRequest.m in Sources */,
  932 + 47A1B194E4E18AD0F1D5EAAF30EBDE63 /* KS3ServiceResponse.m in Sources */,
  933 + CC4CF53DDBA39A7E1E06C64CBDE08BFB /* KS3SetACLRequest.m in Sources */,
  934 + 954DBB07B05D8D19316AF857F64F3AF8 /* KS3SetACLResponse.m in Sources */,
  935 + DFED20C1500C1EB14FDE3362188038B5 /* KS3SetBucketLoggingRequest.m in Sources */,
  936 + 153DE3EDD35451B5190821B9886D49FA /* KS3SetBucketLoggingResponse.m in Sources */,
  937 + E1F6C2A9615B41CD846CDBAF15BB4CE4 /* KS3SetGrantACLRequest.m in Sources */,
  938 + 617A42231C903E2B332D7B7633B3C590 /* KS3SetGrantACLResponse.m in Sources */,
  939 + 9637D4DAC258AD6EA19706CFFE49E7FB /* KS3SetObjectACLRequest.m in Sources */,
  940 + 6040B04A329CB40C7CC580140EB9FC6E /* KS3SetObjectACLResponse.m in Sources */,
  941 + CB229801C3F6D94D58ABA208BAD64805 /* KS3SetObjectGrantACLRequest.m in Sources */,
  942 + 8DE376022641B9B126E8EA58E49C4E74 /* KS3SetObjectGrantACLResponse.m in Sources */,
  943 + 7073EFF2BF6475F4FEDCEFE0118EA2DE /* KS3Upload.m in Sources */,
  944 + 73B4002909669BC54B57587F553BC0C4 /* KS3UploadManager.m in Sources */,
  945 + 433FD702832D6AB60A8AE996DFC18953 /* KS3UploadPartRequest.m in Sources */,
  946 + 715B37EE4CF81A0A00ECF8F92948A23D /* KS3UploadPartResponse.m in Sources */,
  947 + 49567FCFE3B56F9D4518D176A7376970 /* KS3UploadRequest.m in Sources */,
  948 + C798C0DB0DFC0A36813A60D9BA3B666E /* KS3URLRequest.m in Sources */,
  949 + AB9486F88F4D73E9B42250BFCB092564 /* KS3WebServiceClient.m in Sources */,
  950 + );
  951 + runOnlyForDeploymentPostprocessing = 0;
  952 + };
  953 +/* End PBXSourcesBuildPhase section */
  954 +
  955 +/* Begin PBXTargetDependency section */
  956 + 37C599DC0E69EFBDAD65471D946F5C1D /* PBXTargetDependency */ = {
  957 + isa = PBXTargetDependency;
  958 + name = Ks3SDK;
  959 + target = 95FC2A6E6601C839D6B4BD4B31ACA4FD /* Ks3SDK */;
  960 + targetProxy = 981513A7FAA0CA66689E535B8DEF7744 /* PBXContainerItemProxy */;
  961 + };
  962 +/* End PBXTargetDependency section */
  963 +
  964 +/* Begin XCBuildConfiguration section */
  965 + 79B0C2E66EFA9917ED6EDDB8FC6A7684 /* Release */ = {
  966 + isa = XCBuildConfiguration;
  967 + buildSettings = {
  968 + ALWAYS_SEARCH_USER_PATHS = NO;
  969 + CLANG_ANALYZER_NONNULL = YES;
  970 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  971 + CLANG_CXX_LIBRARY = "libc++";
  972 + CLANG_ENABLE_MODULES = YES;
  973 + CLANG_ENABLE_OBJC_ARC = YES;
  974 + CLANG_WARN_BOOL_CONVERSION = YES;
  975 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  976 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
  977 + CLANG_WARN_EMPTY_BODY = YES;
  978 + CLANG_WARN_ENUM_CONVERSION = YES;
  979 + CLANG_WARN_INT_CONVERSION = YES;
  980 + CLANG_WARN_OBJC_ROOT_CLASS = YES;
  981 + CLANG_WARN_UNREACHABLE_CODE = YES;
  982 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  983 + CODE_SIGNING_REQUIRED = NO;
  984 + COPY_PHASE_STRIP = YES;
  985 + ENABLE_NS_ASSERTIONS = NO;
  986 + GCC_C_LANGUAGE_STANDARD = gnu99;
  987 + GCC_PREPROCESSOR_DEFINITIONS = (
  988 + "POD_CONFIGURATION_RELEASE=1",
  989 + "$(inherited)",
  990 + );
  991 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  992 + GCC_WARN_ABOUT_RETURN_TYPE = YES;
  993 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  994 + GCC_WARN_UNINITIALIZED_AUTOS = YES;
  995 + GCC_WARN_UNUSED_FUNCTION = YES;
  996 + GCC_WARN_UNUSED_VARIABLE = YES;
  997 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  998 + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
  999 + STRIP_INSTALLED_PRODUCT = NO;
  1000 + SYMROOT = "${SRCROOT}/../build";
  1001 + VALIDATE_PRODUCT = YES;
  1002 + };
  1003 + name = Release;
  1004 + };
  1005 + 8FFFA5F593D9BA62D9639A29F9C169CF /* Release */ = {
  1006 + isa = XCBuildConfiguration;
  1007 + baseConfigurationReference = 0258B8D9FBCB6E96A18FDC8067CF357B /* Pods-KS3SDKDemo.release.xcconfig */;
  1008 + buildSettings = {
  1009 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  1010 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  1011 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  1012 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  1013 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  1014 + GCC_NO_COMMON_BLOCKS = YES;
  1015 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  1016 + MACH_O_TYPE = staticlib;
  1017 + MTL_ENABLE_DEBUG_INFO = NO;
  1018 + OTHER_LDFLAGS = "";
  1019 + OTHER_LIBTOOLFLAGS = "";
  1020 + PODS_ROOT = "$(SRCROOT)";
  1021 + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
  1022 + PRODUCT_NAME = "$(TARGET_NAME)";
  1023 + SDKROOT = iphoneos;
  1024 + SKIP_INSTALL = YES;
  1025 + };
  1026 + name = Release;
  1027 + };
  1028 + A3A3A5D9B0A378FDDBD54EF92DFACCFA /* Debug */ = {
  1029 + isa = XCBuildConfiguration;
  1030 + baseConfigurationReference = A075D9F0DD5B2EF4F8B5C21385FA784A /* Ks3SDK.xcconfig */;
  1031 + buildSettings = {
  1032 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  1033 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  1034 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  1035 + DEBUG_INFORMATION_FORMAT = dwarf;
  1036 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  1037 + GCC_NO_COMMON_BLOCKS = YES;
  1038 + GCC_PREFIX_HEADER = "Target Support Files/Ks3SDK/Ks3SDK-prefix.pch";
  1039 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  1040 + MTL_ENABLE_DEBUG_INFO = YES;
  1041 + OTHER_LDFLAGS = "";
  1042 + OTHER_LIBTOOLFLAGS = "";
  1043 + PRIVATE_HEADERS_FOLDER_PATH = "";
  1044 + PRODUCT_NAME = "$(TARGET_NAME)";
  1045 + PUBLIC_HEADERS_FOLDER_PATH = "";
  1046 + SDKROOT = iphoneos;
  1047 + SKIP_INSTALL = YES;
  1048 + };
  1049 + name = Debug;
  1050 + };
  1051 + C4D0F26333DF04B763BCA5CD6838E474 /* Debug */ = {
  1052 + isa = XCBuildConfiguration;
  1053 + baseConfigurationReference = 937F8C893F4237D5C9AF6960BDF0D3FC /* Pods-KS3SDKDemo.debug.xcconfig */;
  1054 + buildSettings = {
  1055 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  1056 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  1057 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  1058 + DEBUG_INFORMATION_FORMAT = dwarf;
  1059 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  1060 + GCC_NO_COMMON_BLOCKS = YES;
  1061 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  1062 + MACH_O_TYPE = staticlib;
  1063 + MTL_ENABLE_DEBUG_INFO = YES;
  1064 + OTHER_LDFLAGS = "";
  1065 + OTHER_LIBTOOLFLAGS = "";
  1066 + PODS_ROOT = "$(SRCROOT)";
  1067 + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
  1068 + PRODUCT_NAME = "$(TARGET_NAME)";
  1069 + SDKROOT = iphoneos;
  1070 + SKIP_INSTALL = YES;
  1071 + };
  1072 + name = Debug;
  1073 + };
  1074 + CF7953F66E785E8876EB4D370D777D50 /* Debug */ = {
  1075 + isa = XCBuildConfiguration;
  1076 + buildSettings = {
  1077 + ALWAYS_SEARCH_USER_PATHS = NO;
  1078 + CLANG_ANALYZER_NONNULL = YES;
  1079 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  1080 + CLANG_CXX_LIBRARY = "libc++";
  1081 + CLANG_ENABLE_MODULES = YES;
  1082 + CLANG_ENABLE_OBJC_ARC = YES;
  1083 + CLANG_WARN_BOOL_CONVERSION = YES;
  1084 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  1085 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
  1086 + CLANG_WARN_EMPTY_BODY = YES;
  1087 + CLANG_WARN_ENUM_CONVERSION = YES;
  1088 + CLANG_WARN_INT_CONVERSION = YES;
  1089 + CLANG_WARN_OBJC_ROOT_CLASS = YES;
  1090 + CLANG_WARN_UNREACHABLE_CODE = YES;
  1091 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  1092 + CODE_SIGNING_REQUIRED = NO;
  1093 + COPY_PHASE_STRIP = NO;
  1094 + ENABLE_TESTABILITY = YES;
  1095 + GCC_C_LANGUAGE_STANDARD = gnu99;
  1096 + GCC_DYNAMIC_NO_PIC = NO;
  1097 + GCC_OPTIMIZATION_LEVEL = 0;
  1098 + GCC_PREPROCESSOR_DEFINITIONS = (
  1099 + "POD_CONFIGURATION_DEBUG=1",
  1100 + "DEBUG=1",
  1101 + "$(inherited)",
  1102 + );
  1103 + GCC_SYMBOLS_PRIVATE_EXTERN = NO;
  1104 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  1105 + GCC_WARN_ABOUT_RETURN_TYPE = YES;
  1106 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  1107 + GCC_WARN_UNINITIALIZED_AUTOS = YES;
  1108 + GCC_WARN_UNUSED_FUNCTION = YES;
  1109 + GCC_WARN_UNUSED_VARIABLE = YES;
  1110 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  1111 + ONLY_ACTIVE_ARCH = YES;
  1112 + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/;
  1113 + STRIP_INSTALLED_PRODUCT = NO;
  1114 + SYMROOT = "${SRCROOT}/../build";
  1115 + };
  1116 + name = Debug;
  1117 + };
  1118 + DF20F11DA911E0283159610271382D2F /* Release */ = {
  1119 + isa = XCBuildConfiguration;
  1120 + baseConfigurationReference = A075D9F0DD5B2EF4F8B5C21385FA784A /* Ks3SDK.xcconfig */;
  1121 + buildSettings = {
  1122 + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
  1123 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
  1124 + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
  1125 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  1126 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  1127 + GCC_NO_COMMON_BLOCKS = YES;
  1128 + GCC_PREFIX_HEADER = "Target Support Files/Ks3SDK/Ks3SDK-prefix.pch";
  1129 + IPHONEOS_DEPLOYMENT_TARGET = 7.0;
  1130 + MTL_ENABLE_DEBUG_INFO = NO;
  1131 + OTHER_LDFLAGS = "";
  1132 + OTHER_LIBTOOLFLAGS = "";
  1133 + PRIVATE_HEADERS_FOLDER_PATH = "";
  1134 + PRODUCT_NAME = "$(TARGET_NAME)";
  1135 + PUBLIC_HEADERS_FOLDER_PATH = "";
  1136 + SDKROOT = iphoneos;
  1137 + SKIP_INSTALL = YES;
  1138 + };
  1139 + name = Release;
  1140 + };
  1141 +/* End XCBuildConfiguration section */
  1142 +
  1143 +/* Begin XCConfigurationList section */
  1144 + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
  1145 + isa = XCConfigurationList;
  1146 + buildConfigurations = (
  1147 + CF7953F66E785E8876EB4D370D777D50 /* Debug */,
  1148 + 79B0C2E66EFA9917ED6EDDB8FC6A7684 /* Release */,
  1149 + );
  1150 + defaultConfigurationIsVisible = 0;
  1151 + defaultConfigurationName = Release;
  1152 + };
  1153 + 63C38FA0D764BBE40687F0AC679FEF00 /* Build configuration list for PBXNativeTarget "Pods-KS3SDKDemo" */ = {
  1154 + isa = XCConfigurationList;
  1155 + buildConfigurations = (
  1156 + C4D0F26333DF04B763BCA5CD6838E474 /* Debug */,
  1157 + 8FFFA5F593D9BA62D9639A29F9C169CF /* Release */,
  1158 + );
  1159 + defaultConfigurationIsVisible = 0;
  1160 + defaultConfigurationName = Release;
  1161 + };
  1162 + E7DD90243E3D72D1271158E30B764F63 /* Build configuration list for PBXNativeTarget "Ks3SDK" */ = {
  1163 + isa = XCConfigurationList;
  1164 + buildConfigurations = (
  1165 + A3A3A5D9B0A378FDDBD54EF92DFACCFA /* Debug */,
  1166 + DF20F11DA911E0283159610271382D2F /* Release */,
  1167 + );
  1168 + defaultConfigurationIsVisible = 0;
  1169 + defaultConfigurationName = Release;
  1170 + };
  1171 +/* End XCConfigurationList section */
  1172 + };
  1173 + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
  1174 +}
... ...
KS3SDKDemo/Pods/Pods.xcodeproj/xcuserdata/cnlive.xcuserdatad/xcschemes/Ks3SDK.xcscheme 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0700"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = 'primary'
  17 + BlueprintIdentifier = '95FC2A6E6601C839D6B4BD4B31ACA4FD'
  18 + BlueprintName = 'Ks3SDK'
  19 + ReferencedContainer = 'container:Pods.xcodeproj'
  20 + BuildableName = 'libKs3SDK.a'>
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
KS3SDKDemo/Pods/Pods.xcodeproj/xcuserdata/cnlive.xcuserdatad/xcschemes/Pods-KS3SDKDemo.xcscheme 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "0700"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForAnalyzing = "YES"
  11 + buildForTesting = "YES"
  12 + buildForRunning = "YES"
  13 + buildForProfiling = "YES"
  14 + buildForArchiving = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = 'primary'
  17 + BlueprintIdentifier = 'B2CE65DA0288B635CC9364306C3C5972'
  18 + BlueprintName = 'Pods-KS3SDKDemo'
  19 + ReferencedContainer = 'container:Pods.xcodeproj'
  20 + BuildableName = 'libPods-KS3SDKDemo.a'>
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  27 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  28 + shouldUseLaunchSchemeArgsEnv = "YES"
  29 + buildConfiguration = "Debug">
  30 + <AdditionalOptions>
  31 + </AdditionalOptions>
  32 + </TestAction>
  33 + <LaunchAction
  34 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  35 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  36 + launchStyle = "0"
  37 + useCustomWorkingDirectory = "NO"
  38 + ignoresPersistentStateOnLaunch = "NO"
  39 + debugDocumentVersioning = "YES"
  40 + debugServiceExtension = "internal"
  41 + buildConfiguration = "Debug"
  42 + allowLocationSimulation = "YES">
  43 + <AdditionalOptions>
  44 + </AdditionalOptions>
  45 + </LaunchAction>
  46 + <ProfileAction
  47 + savedToolIdentifier = ""
  48 + useCustomWorkingDirectory = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + buildConfiguration = "Release"
  51 + shouldUseLaunchSchemeArgsEnv = "YES">
  52 + </ProfileAction>
  53 + <AnalyzeAction
  54 + buildConfiguration = "Debug">
  55 + </AnalyzeAction>
  56 + <ArchiveAction
  57 + buildConfiguration = "Release"
  58 + revealArchiveInOrganizer = "YES">
  59 + </ArchiveAction>
  60 +</Scheme>
... ...
KS3SDKDemo/Pods/Target Support Files/Ks3SDK/Ks3SDK-dummy.m 0 → 100644
  1 +#import <Foundation/Foundation.h>
  2 +@interface PodsDummy_Ks3SDK : NSObject
  3 +@end
  4 +@implementation PodsDummy_Ks3SDK
  5 +@end
... ...
KS3SDKDemo/Pods/Target Support Files/Ks3SDK/Ks3SDK-prefix.pch 0 → 100644
  1 +#ifdef __OBJC__
  2 +#import <UIKit/UIKit.h>
  3 +#endif
  4 +
... ...
KS3SDKDemo/Pods/Target Support Files/Ks3SDK/Ks3SDK.xcconfig 0 → 100644
  1 +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Ks3SDK
  2 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
  3 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Ks3SDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Ks3SDK"
  4 +PODS_BUILD_DIR = $BUILD_DIR
  5 +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
  6 +PODS_ROOT = ${SRCROOT}
  7 +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
  8 +SKIP_INSTALL = YES
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo-acknowledgements.markdown 0 → 100644
  1 +# Acknowledgements
  2 +This application makes use of the following third party libraries:
  3 +
  4 +## Ks3SDK
  5 +
  6 +Copyright (c) 2017 Kingsoft.
  7 +
  8 +Licensed under the Apache License, Version 2.0 (the "License");
  9 +you may not use this file except in compliance with the License.
  10 +You may obtain a copy of the License at
  11 +
  12 + http://www.apache.org/licenses/LICENSE-2.0
  13 +
  14 + Unless required by applicable law or agreed to in writing, software
  15 + distributed under the License is distributed on an "AS IS" BASIS,
  16 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17 + See the License for the specific language governing permissions and
  18 + limitations under the License.
  19 +
  20 +Generated by CocoaPods - https://cocoapods.org
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo-acknowledgements.plist 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>PreferenceSpecifiers</key>
  6 + <array>
  7 + <dict>
  8 + <key>FooterText</key>
  9 + <string>This application makes use of the following third party libraries:</string>
  10 + <key>Title</key>
  11 + <string>Acknowledgements</string>
  12 + <key>Type</key>
  13 + <string>PSGroupSpecifier</string>
  14 + </dict>
  15 + <dict>
  16 + <key>FooterText</key>
  17 + <string>Copyright (c) 2017 Kingsoft.
  18 +
  19 +Licensed under the Apache License, Version 2.0 (the "License");
  20 +you may not use this file except in compliance with the License.
  21 +You may obtain a copy of the License at
  22 +
  23 + http://www.apache.org/licenses/LICENSE-2.0
  24 +
  25 + Unless required by applicable law or agreed to in writing, software
  26 + distributed under the License is distributed on an "AS IS" BASIS,
  27 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  28 + See the License for the specific language governing permissions and
  29 + limitations under the License.
  30 +</string>
  31 + <key>License</key>
  32 + <string>Apache License, Version 2.0</string>
  33 + <key>Title</key>
  34 + <string>Ks3SDK</string>
  35 + <key>Type</key>
  36 + <string>PSGroupSpecifier</string>
  37 + </dict>
  38 + <dict>
  39 + <key>FooterText</key>
  40 + <string>Generated by CocoaPods - https://cocoapods.org</string>
  41 + <key>Title</key>
  42 + <string></string>
  43 + <key>Type</key>
  44 + <string>PSGroupSpecifier</string>
  45 + </dict>
  46 + </array>
  47 + <key>StringsTable</key>
  48 + <string>Acknowledgements</string>
  49 + <key>Title</key>
  50 + <string>Acknowledgements</string>
  51 +</dict>
  52 +</plist>
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo-dummy.m 0 → 100644
  1 +#import <Foundation/Foundation.h>
  2 +@interface PodsDummy_Pods_KS3SDKDemo : NSObject
  3 +@end
  4 +@implementation PodsDummy_Pods_KS3SDKDemo
  5 +@end
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo-frameworks.sh 0 → 100755
  1 +#!/bin/sh
  2 +set -e
  3 +
  4 +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  5 +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  6 +
  7 +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
  8 +
  9 +install_framework()
  10 +{
  11 + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
  12 + local source="${BUILT_PRODUCTS_DIR}/$1"
  13 + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
  14 + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
  15 + elif [ -r "$1" ]; then
  16 + local source="$1"
  17 + fi
  18 +
  19 + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  20 +
  21 + if [ -L "${source}" ]; then
  22 + echo "Symlinked..."
  23 + source="$(readlink "${source}")"
  24 + fi
  25 +
  26 + # use filter instead of exclude so missing patterns dont' throw errors
  27 + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
  28 + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
  29 +
  30 + local basename
  31 + basename="$(basename -s .framework "$1")"
  32 + binary="${destination}/${basename}.framework/${basename}"
  33 + if ! [ -r "$binary" ]; then
  34 + binary="${destination}/${basename}"
  35 + fi
  36 +
  37 + # Strip invalid architectures so "fat" simulator / device frameworks work on device
  38 + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
  39 + strip_invalid_archs "$binary"
  40 + fi
  41 +
  42 + # Resign the code if required by the build settings to avoid unstable apps
  43 + code_sign_if_enabled "${destination}/$(basename "$1")"
  44 +
  45 + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
  46 + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
  47 + local swift_runtime_libs
  48 + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
  49 + for lib in $swift_runtime_libs; do
  50 + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
  51 + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
  52 + code_sign_if_enabled "${destination}/${lib}"
  53 + done
  54 + fi
  55 +}
  56 +
  57 +# Signs a framework with the provided identity
  58 +code_sign_if_enabled() {
  59 + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
  60 + # Use the current code_sign_identitiy
  61 + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
  62 + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\""
  63 + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1"
  64 + fi
  65 +}
  66 +
  67 +# Strip invalid architectures
  68 +strip_invalid_archs() {
  69 + binary="$1"
  70 + # Get architectures for current file
  71 + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
  72 + stripped=""
  73 + for arch in $archs; do
  74 + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
  75 + # Strip non-valid architectures in-place
  76 + lipo -remove "$arch" -output "$binary" "$binary" || exit 1
  77 + stripped="$stripped $arch"
  78 + fi
  79 + done
  80 + if [[ "$stripped" ]]; then
  81 + echo "Stripped $binary of architectures:$stripped"
  82 + fi
  83 +}
  84 +
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo-resources.sh 0 → 100755
  1 +#!/bin/sh
  2 +set -e
  3 +
  4 +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  5 +
  6 +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
  7 +> "$RESOURCES_TO_COPY"
  8 +
  9 +XCASSET_FILES=()
  10 +
  11 +case "${TARGETED_DEVICE_FAMILY}" in
  12 + 1,2)
  13 + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
  14 + ;;
  15 + 1)
  16 + TARGET_DEVICE_ARGS="--target-device iphone"
  17 + ;;
  18 + 2)
  19 + TARGET_DEVICE_ARGS="--target-device ipad"
  20 + ;;
  21 + *)
  22 + TARGET_DEVICE_ARGS="--target-device mac"
  23 + ;;
  24 +esac
  25 +
  26 +install_resource()
  27 +{
  28 + if [[ "$1" = /* ]] ; then
  29 + RESOURCE_PATH="$1"
  30 + else
  31 + RESOURCE_PATH="${PODS_ROOT}/$1"
  32 + fi
  33 + if [[ ! -e "$RESOURCE_PATH" ]] ; then
  34 + cat << EOM
  35 +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
  36 +EOM
  37 + exit 1
  38 + fi
  39 + case $RESOURCE_PATH in
  40 + *.storyboard)
  41 + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
  42 + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
  43 + ;;
  44 + *.xib)
  45 + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
  46 + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
  47 + ;;
  48 + *.framework)
  49 + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  50 + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  51 + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  52 + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
  53 + ;;
  54 + *.xcdatamodel)
  55 + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
  56 + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
  57 + ;;
  58 + *.xcdatamodeld)
  59 + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
  60 + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
  61 + ;;
  62 + *.xcmappingmodel)
  63 + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
  64 + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
  65 + ;;
  66 + *.xcassets)
  67 + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH"
  68 + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
  69 + ;;
  70 + *)
  71 + echo "$RESOURCE_PATH"
  72 + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
  73 + ;;
  74 + esac
  75 +}
  76 +
  77 +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  78 +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  79 +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
  80 + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  81 + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  82 +fi
  83 +rm -f "$RESOURCES_TO_COPY"
  84 +
  85 +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
  86 +then
  87 + # Find all other xcassets (this unfortunately includes those of path pods and other targets).
  88 + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
  89 + while read line; do
  90 + if [[ $line != "${PODS_ROOT}*" ]]; then
  91 + XCASSET_FILES+=("$line")
  92 + fi
  93 + done <<<"$OTHER_XCASSETS"
  94 +
  95 + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
  96 +fi
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo.debug.xcconfig 0 → 100644
  1 +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
  2 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
  3 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Ks3SDK"
  4 +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Ks3SDK"
  5 +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Ks3SDK"
  6 +OTHER_LDFLAGS = $(inherited) -ObjC -l"Ks3SDK"
  7 +PODS_BUILD_DIR = $BUILD_DIR
  8 +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
  9 +PODS_ROOT = ${SRCROOT}/Pods
... ...
KS3SDKDemo/Pods/Target Support Files/Pods-KS3SDKDemo/Pods-KS3SDKDemo.release.xcconfig 0 → 100644
  1 +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO
  2 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
  3 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Ks3SDK"
  4 +LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Ks3SDK"
  5 +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Ks3SDK"
  6 +OTHER_LDFLAGS = $(inherited) -ObjC -l"Ks3SDK"
  7 +PODS_BUILD_DIR = $BUILD_DIR
  8 +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
  9 +PODS_ROOT = ${SRCROOT}/Pods
... ...