Javascript 从react native将图像上载到AWS S3时发生暂时重定向错误
通过将图像上传到AWS S3,我得到了这个响应(图像是我的redux开发工具的屏幕截图): 我用的是这个redux可观察史诗:Javascript 从react native将图像上载到AWS S3时发生暂时重定向错误,javascript,reactjs,amazon-web-services,amazon-s3,react-native,Javascript,Reactjs,Amazon Web Services,Amazon S3,React Native,通过将图像上传到AWS S3,我得到了这个响应(图像是我的redux开发工具的屏幕截图): 我用的是这个redux可观察史诗: export const uploadImageEpic = action$ => action$.ofType(UPLOAD_IMAGE) .mergeMap(action => Observable.fromPromise( RNS3.put(action.payload.file, action.payload.
export const uploadImageEpic = action$ =>
action$.ofType(UPLOAD_IMAGE)
.mergeMap(action =>
Observable.fromPromise(
RNS3.put(action.payload.file, action.payload.options)
)
.map(response => uploadImageFulfilled(response))
.catch(error => {
return Observable.of(uploadImageRejected(error.xhr.response))
})
)
action.payload.file是(从chrome控制台复制的对象):
选项(从chrome控制台复制的对象):
所以无论如何,我应该再次尝试到另一个端点。所以我把它添加到options对象中:url:'vepo images.s3-ap-southest-2.amazonaws.com'
,我从AWS那里得到了完全相同的响应。还尝试了s3-ap-southerast-2.amazonaws.com
作为url
你知道我应该怎么做吗
桶的我的CORS配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
编辑:它现在可以工作,不做任何更改。既没有添加到
选项的url
对象,也没有添加url:'s3-ap-southest-2.amazonaws.com
。因此,也许AWSS3API有点喜怒无常……这可能是一个问题。我想我只需要捕获307
,然后重试,在选项中来回切换url
参数
您应该能够配置followRedirects=true,无论您使用哪个HTTP客户端
现在是307,可能是302,如果AWS真的疯了,可能是301。谢谢,我想我用的时候做不到,所以我不用http客户端。不过,重定向处理可能是一个很好的功能请求。
accessKey: "cant really give this away"
bucket: "vepo-images"
region: "ap-southeast-2"
secretKey: "cant really give this away"
successActionStatus: 201
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
{
"Id": "Policy1495174705604",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1495174695734",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::vepo-images/*",
"Principal": "*"
}
]
}