Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从react native将图像上载到AWS S3时发生暂时重定向错误_Javascript_Reactjs_Amazon Web Services_Amazon S3_React Native - Fatal编程技术网

Javascript 从react native将图像上载到AWS S3时发生暂时重定向错误

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.

通过将图像上传到AWS S3,我得到了这个响应(图像是我的redux开发工具的屏幕截图):

我用的是这个redux可观察史诗:

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": "*"
    }
  ]
}