Vision OS中使用AWS S3上传USDZ模型时凭证配置报错求助
上传USDZ模型至AWS S3的凭证配置错误解决
我尝试将USDZ模型上传至AWS S3存储桶,但配置凭证时出现错误,相关代码如下:
let accessKeyId = ProcessInfo.processInfo.environment["AWS_ACCESS_KEY_ID"] let secretAccessKey = ProcessInfo.processInfo.environment["AWS_SECRET_ACCESS_KEY"] do{ // Setup AWS credentials, connection config and client let credentialsProvider = try StaticCredentialsProvider(Credentials(accessKey: accessKeyId!, secret: secretAccessKey!)) let configuration = try S3Client.S3ClientConfiguration(region: "sa-east-1", credentialsProvider: credentialsProvider) let client = S3Client(config: configuration) }
已参考AWS Vision Pro官方入门文档,错误截图显示凭证配置相关异常,以下是排查和解决建议:
检查环境变量配置
确保AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY已在项目中正确设置:- 在Xcode中通过
Edit Scheme -> Arguments -> Environment Variables添加这两个变量,注意Debug/Release模式下的配置是否一致; - 移除代码中的强制解包,避免因变量未配置直接崩溃,改用可选绑定:
guard let accessKeyId = ProcessInfo.processInfo.environment["AWS_ACCESS_KEY_ID"], let secretAccessKey = ProcessInfo.processInfo.environment["AWS_SECRET_ACCESS_KEY"] else { print("未配置AWS凭证环境变量") return }
- 在Xcode中通过
验证IAM凭证权限
- 确认使用的IAM用户拥有S3对象上传权限(如
s3:PutObject),且凭证未过期、未被禁用; - 检查存储桶所在区域是否为
sa-east-1,客户端配置的区域需与存储桶区域一致。
- 确认使用的IAM用户拥有S3对象上传权限(如
排查SDK版本兼容性
确保使用的AWS SDK for Swift版本与官方文档匹配,版本不兼容可能导致凭证初始化失败。采用安全的凭证方案(推荐)
对于Vision Pro/iOS应用,优先使用默认凭证提供者替代静态凭证,更符合AWS安全最佳实践:let credentialsProvider = DefaultCredentialsProvider() let configuration = try S3Client.S3ClientConfiguration(region: "sa-east-1", credentialsProvider: credentialsProvider) let client = S3Client(config: configuration)
内容的提问来源于stack exchange,提问作者Sam007
相关产品推荐
相关产品推荐

