簡體   English   中英

將TemporaryRedirect錯誤從React Native上傳到AWS S3的圖像

[英]TemporaryRedirect error uploading image to AWS S3 from react native

我通過使用react-native-aws3將圖像上傳到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控制台復制的對象):

name: "image-5a430850-8314-497e-8d56-0df45e3fed95.jpg"
type: "image/png"
uri: "file:///storage/sdcard/Android/data/com.vepo/files/Pictures/image-5a430850-8314-497e-8d56-0df45e3fed95.jpg"

選項(從chrome控制台復制的對象):

accessKey: "cant really give this away"
bucket: "vepo-images"
region: "ap-southeast-2"
secretKey: "cant really give this away"
successActionStatus: 201

因此,無論如何,我應該再次嘗試另一個端點。 所以我將其添加到選項對象: url: 'vepo-images.s3-ap-southeast-2.amazonaws.com' ,我從AWS那里得到了完全相同的響應。 還嘗試使用s3-ap-southeast-2.amazonaws.com作為網址。

知道我應該怎么做嗎?

我的存儲桶的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>

鏟斗政策:

{
  "Id": "Policy1495174705604",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1495174695734",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::vepo-images/*",
      "Principal": "*"
    }
  ]
}

編輯:現在可以正常工作,無需進行任何更改。 兩者都沒有將url添加到option對象,並且都具有url: 's3-ap-southeast-2.amazonaws.com 因此,也許AWS S3 API有點氣質...這可能是個問題。 我認為我只會接307並重試一次,將url參數切換為options

您應該能夠為可能正在使用的任何HTTP客戶端配置followRedirects = true。

現在的307,可能是302,如果AWS真的發瘋了,則可能是301。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM