私は仕事のために簡単なテストを受けるのに大いに時間をかけてきました。私は、反応したネイティブのモバイルアプリで作業しています。私は、presigned URLを生成し、s3にビデオファイルをアップロードするためにそのURLを使用します。 予約済みのURLを使用して画像をS3にアップロード
const file = fs.readFileSync('./video.mp4')
s3.getSignedUrl('putObject', {Bucket: 'mybucket', Key: 'video.mp4'}, (err, url) => {
if (err) { console.log(err); }
else {
fetch(url, {
method: 'PUT',
body: file
})
.then(success => console.log(success.status))
.catch(e => console.log(e))
})
})
は、私が200のステータスコードを取得しますが、S3に表示される「file」は0バイトを持っている:私は現在だけで行うことで、このアプローチをテストしようとしています。 fs.readFileSyncを介して受け取ったファイルをアップロードしようとすると、同じことが起こっていることに気付きました。 私は一時的にfs.readFileSync( './ video.mp4'、 'base64')をやっていたが、私のビデオでは元の形式でアクセスする必要があるため、これはアプリケーションでは機能しません。 base64文字列として返します。私もs3.uploadをうまく使いましたが、s3とのやりとりを許可する前にサーバ上のすべてのユーザのアクションを認証したいので、私のアプリでもうまくいきません。 私は本当にいくつかのアドバイスをお待ちしています。私は一日中ContentTypesとContentLengthを使っていました。
あなたはTUがオブジェクトを入れてもらうこの方法に従ってください? - > [AWSJavaScriptSDK](http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-examples.html) – aldanux