标签: aws-appsync-ios

使用AWS Appsync ||将图像上传到s3的过程 使用Appsync上传iOS图片

我正在开发一个新项目,需要以图像的形式上传附件.我正在使用DynamoDB和AppSync API来插入和检索数据库中的数据.由于我们是AppSync的新手以及我们用于应用程序的所有亚马逊服务和数据库,我对身份验证过程有点困惑.现在我们正在使用API​​密钥进行身份验证,我已尝试将这些步骤上传到s3.

1 AWSServiceManager配置静态配置,如: -

let staticCredit =  AWSStaticCredentialsProvider(accessKey: kAppSyncAccessKey, secretKey: kAppSyncSecretKey)
let AppSyncRegion: AWSRegionType = .USEast2
let config = AWSServiceConfiguration(region: AppSyncRegion, credentialsProvider: staticCredit)
AWSServiceManager.default().defaultServiceConfiguration = config
Run Code Online (Sandbox Code Playgroud)

2使用此方法上传图片: -

func updatePictureToServer(url:URL, completion:@escaping (Bool)->Void){
    let transferManager = AWSS3TransferManager.default()
    let uploadingFileURL = url
    let uploadRequest = AWSS3TransferManagerUploadRequest()
    let userBucket = String(format: "BUCKET")
    uploadRequest?.bucket = userBucket
    let fileName = String(format: "%@%@", AppSettings.getUserId(),".jpg")
    uploadRequest?.key = fileName
    uploadRequest?.body = uploadingFileURL
    transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in
        if let error = task.error as …
Run Code Online (Sandbox Code Playgroud)

objective-c amazon-web-services ios swift aws-appsync-ios

6
推荐指数
1
解决办法
396
查看次数

解析程序中的AWS Appsync $ ctx与$ context

我知道上下文是您在Lambda函数中定义的名称,但是对于Appsync解析器,我有点困惑。我已经看到了两者$ctx$context并在包括AWS文档在内的AppSync解析器中使用了它们。AWS自己的一些代码生成工具(例如AWS Amplify CLI)会创建在同一代码中使用两者的解析器!我在文档中找不到任何解释此内容的信息。这里发生了什么?

amazon-web-services graphql aws-appsync aws-appsync-ios appsync-apollo-client

6
推荐指数
1
解决办法
264
查看次数

如何设置 AWS Appsync 请求超时限制 || AWSAppSync 客户端不提供回调

我正在将 AWS Appsync 用于我正在开发的当前应用程序并面临一个严重问题,即每当我在 Appsync 客户端中触发查询时,当互联网连接速度较慢时,请求永远不会以回调结束。我通过互联网检查了有关此主题的信息来源有限,并且还发现此问题仍然存在。

这是我用来获得响应的代码

func getAllApi(completion:@escaping DataCallback){
    guard isInternetAvailabele() else {
        completion(nil)
        return
    }
    // AppSyncManager.Client() is AWSAppSyncClient Object
    AppSyncManager.Client().fetch(query: GetlAllPostQuery(input: allInputs), cachePolicy:.fetchIgnoringCacheData) {
        (result, error) in
        var haveError:Bool = error != nil
        if let _ = result?.data?.getAllPostings?.responseCode {haveError = false} else {haveError = true}
        if haveError  {
            print(error?.localizedDescription ?? "")
            completion(nil)
            return
        }

        if result != nil{
            completion(result)
        }else{
            completion(nil)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该代码在互联网连接下工作正常,如果没有互联网,我已经在顶部进行了检查,但是当互联网连接速度较慢或 wifi 连接到我在禁用互联网数据的情况下使用手机创建的热点时,请求不会返回任何回调,它应该给出失败的警报,就像我们在请求超时时进入其他 api 一样。是否支持请求超时或我错过了什么?

注意:我在终端中收到了这些日志

Task <06E9BBF4-5731-471B-9B7D-19E5E504E57F>.<45> HTTP load failed …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services ios swift aws-appsync aws-appsync-ios

6
推荐指数
1
解决办法
3137
查看次数

如何对 AWS AppSync 架构进行版本控制

我有一个需要更新 AWS AppSync 架构的用例。由于我的应用程序用户将拥有不同版本的应用程序,因此不同版本需要使用的架构会有所不同。

有没有办法对 AppSync 架构进行版本控制并从 iOS 和 Android 应用程序调用不同版本的架构?

我可以获得两个平台的示例代码指针吗?

amazon-web-services aws-appsync aws-appsync-ios appsync-apollo-client

2
推荐指数
1
解决办法
1224
查看次数