ich diese Antwort immer wieder mit react-native-aws3 ein Bild zu AWS S3 aus dem Hochladen (Bild Screenshot von meinem redux dev Tools ist): TemporaryRedirect Fehler AWS S3 hochladen Bild von reagieren nativen
Ich verwende dieses redux beobachtbare Epos:
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))
})
)
die action.payload.file ist dies (Objekt aus Chromkonsole kopiert):
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"
die Optionen (Objekt von der Chrome-Konsole kopiert):
accessKey: "cant really give this away"
bucket: "vepo-images"
region: "ap-southeast-2"
secretKey: "cant really give this away"
successActionStatus: 201
Also sowieso soll ich nochmal zum anderen Endpunkt versuchen. Also habe ich das zum Options-Objekt hinzugefügt: url: 'vepo-images.s3-ap-southeast-2.amazonaws.com'
und ich habe die genaue Antwort von AWS zurückbekommen. Auch versucht s3-ap-southeast-2.amazonaws.com
als die URL.
Irgendeine Idee, was ich diesbezüglich tun sollte?
Meine CORS Config für den heißen Stein:
<?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>
Bucket Politik:
{
"Id": "Policy1495174705604",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1495174695734",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::vepo-images/*",
"Principal": "*"
}
]
}
EDIT: es funktioniert jetzt, ohne Änderungen. Beide ohne ein url
hinzugefügt zu dem option
Objekt und mit url: 's3-ap-southeast-2.amazonaws.com
. Also vielleicht ist die AWS S3 API etwas temperamentvoll ... was ein Problem sein könnte. Ich denke, ich werde nur 307
fangen und eine Wiederholung versuchen, die url
param in und aus der options
schalten.
Danke, ich glaube nicht, dass ich das tun kann, da ich [react-native-aws3] (https://github.com/benjreinhart/react-native-aws3) verwende, also verwende ich keinen HTTP-Client . Redirect-Handling könnte jedoch eine gute Feature-Anfrage sein. – BeniaminoBaggins