[英]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.