ios – 如何在没有Amazon Cognito的情况下使用AWS S3?

ios – 如何在没有Amazon Cognito的情况下使用AWS S3?,第1张

概述我使用Node.js REST API来验证我的用户.一旦他们通过身份验证,我就允许他们发布带有文字的照片.我的计划是将文本和URL存储到数据库中的照片中.这样当他们转到帖子的源时,我的应用程序将查询数据库以获取文本和URL,然后使用所有URL直接从S3获取图像.这是正确的方法,如果是这样的话,如果不使用cognito,我怎么也不能这样做.我试图削减成本,因为我已经使用我的API添加身份验证,因此 我使用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?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存