React Native中AWS SDK突发故障:S3连接无响应求助
React Native应用突发AWS S3连接失效(代码未改动)
问题描述
此前运行正常的React Native应用,昨晚突发AWS S3连接失效,相关代码已两个月未做改动。调用S3接口后无任何返回,既不进入then分支也不触发catch,内部添加try-catch也无反应。
检查AWS IAM凭证发现,密钥自昨晚后未被使用过。打印bucket对象能得到正常结果,显示存在AWS交互,但对应的AWS网络请求无有效响应。
相关代码
CloudService.js
import React ,{useState} from 'react'; import AWS from 'aws-sdk' export const S3_BUCKET_CAROUSEL ='carouselnews'; export const S3_BUCKET_ADVISORS = 'advisorsdata'; const REGION ='ap-south-1'; AWS.config.update({ accessKeyId: 'xxxxxx', secretAccessKey: 'xxxxxx' }) export const getCarouselData = () => { const bucket = new AWS.S3({ params: { Bucket: S3_BUCKET_CAROUSEL}, region: REGION, }) const S3_URL = `https://${S3_BUCKET_CAROUSEL}.s3.${REGION}.amazonaws.com/` return bucket.listObjects().promise(); } export const getS3URL = (bucket) => { return `https://${bucket}.s3.${REGION}.amazonaws.com/` }
Home.js调用代码
getCarouselData() .then(data => { if (data) { var s3_url = getS3URL(S3_BUCKET_CAROUSEL); var items = data.Contents; items.forEach((item, index) => { if (index > 5) { return; } setcarouselItems(oldArray => [ ...oldArray, { id: index + 1, url: `${s3_url}${item.Key}`, }, ]); }); } setTimeout(() => { setcarouselLoaded(true); }, 4000); }) .catch(err => { console.log(err); }) .finally(zz => { console.log("whatttt") })
排查与解决方案建议
检查AWS服务状态
确认AWS S3在ap-south-1区域是否有服务中断,可通过AWS控制台的状态页面查看。若为区域服务故障,等待官方恢复即可。验证IAM凭证权限
- 排查该凭证对应的IAM策略是否被修改,确保拥有
s3:ListBucket权限,且资源范围包含carouselnews桶。 - 用该凭证通过AWS CLI执行
aws s3 ls s3://carouselnews --region ap-south-1,验证凭证本身是否能正常访问S3。
- 排查该凭证对应的IAM策略是否被修改,确保拥有
排查网络与依赖问题
- 检查应用网络权限配置:iOS端确认
Info.plist是否允许访问S3域名,Android端检查AndroidManifest.xml的网络权限设置。 - 重新安装
aws-sdk依赖,排查是否存在隐性版本兼容问题:执行npm install aws-sdk或yarn add aws-sdk。 - 在设备上抓包分析S3请求细节,确认请求是否发出、是否存在超时或响应被拦截的情况。
- 检查应用网络权限配置:iOS端确认
代码层面优化排查
- 开启AWS SDK调试日志,查看内部请求细节:
AWS.config.logger = console; - 替换旧版接口为AWS推荐的
listObjectsV2测试:return bucket.listObjectsV2().promise(); - 检查应用是否存在阻塞事件循环的代码,避免Promise无法正常resolve/reject。
- 开启AWS SDK调试日志,查看内部请求细节:
内容的提问来源于stack exchange,提问作者Nikhil Kolte
相关产品推荐
相关产品推荐

