iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何在没有Amazon Cognito的情况下使用AWS S3?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用Node.js REST API来验证我的用户.一旦他们通过身份验证,我就允许他们发布带有文字的照片.我的计划是将文本和URL存储到数据库中的照片中.这样当他们转到帖子的源时,我的应用程序将查询数据库获取文本和URL,然后使用所有URL直接从S3获取图像.这是正确的方法,如果是这样的话,如果不使用cognito,我怎么也不能这样做.我试图削减成本,因为我已经使用我的API添加身份验证,因此认知似乎没用.

这是我到目前为止的代码.

let S3BucketName = "*******"

    // configure authentication with Cognito
    let CognitoPoolID = "*************"
    let Region = AWSRegionType.USEast1
    let credentialsProvider = AWSCognitoCredentialsProvider(regionType:Region,identityPoolId:CognitoPoolID)
    let configuration = AWSServiceConfiguration(region:Region,credentialsProvider:credentialsProvider)
    AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

    let ext = "png"
    let imageURL = NSBundle.mainBundle().URLForResource("iimage",withExtension: ext)!

    let uploadRequest = AWSS3TransferManagerUploadRequest()
    uploadRequest.body = imageURL
    uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext
    uploadRequest.bucket = S3BucketName
    uploadRequest.contentType = "image/" + ext

    let transferManager = AWSS3TransferManager.defaultS3TransferManager()
    transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
        if let error = task.error {
            print("Upload Failed (\(error))")
        }
        if let exception = task.exception {
            print("Upload Failed (\(exception))")
        }
        if task.result != nil {
            let s3URL = NSURL(string: "http://s3.amazonaws.com/\(S3BucketName)/\(uploadRequest.key!)")!
            print("Uploaded to:\n\(s3URL)")
        }
        else {
            print("Unexpected empty result.")
        }
        return nil
    }

解决方法

因为没有认知使用这个

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    AWSStaticCredentialsProvider *credentialsProvider = [[AWSStaticCredentialsProvider alloc] initWithAccessKey:AWS_ACCESS_KEY secretKey:AWS_SECRET_KEY];

    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPSoutheast1
                                                                     credentialsProvider:credentialsProvider];

    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
}

并用于上传图像使用

AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];

AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.bucket = AWS_S3_BUCKET_NAME;
uploadRequest.key = @"cards/image.png";
uploadRequest.contentType = @"image/png";
uploadRequest.body = imageURL;

[[transferManager upload:uploadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor]
                                                   withBlock:^id(AWSTask *task) {
                                                       if (task.error) {
                                                           if ([task.error.domain isEqualToString:AWSS3TransferManagerErrorDomain]) {
                                                               switch (task.error.code)
                                                               {
                                                                   case AWSS3TransferManagerErrorCancelled:
                                                                   case AWSS3TransferManagerErrorPaused:
                                                                       break;

                                                                   default:
                                                                       NSLog(@"Error: %@",task.error);
                                                                       break;
                                                               }
                                                           }
                                                           else
                                                           {
                                                               // UnkNown error.
                                                               NSLog(@"Error: %@",task.error);
                                                           }
                                                       }

                                                       if (task.result)
                                                       {
                                                           AWSS3TransferManagerUploadOutput *uploadOutput = task.result;
                                                            NSLog(@"success: %@",uploadOutput);
                                                       }
                                                       return nil;
                                                   }];

大佬总结

以上是大佬教程为你收集整理的ios – 如何在没有Amazon Cognito的情况下使用AWS S3?全部内容,希望文章能够帮你解决ios – 如何在没有Amazon Cognito的情况下使用AWS S3?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: