このブロックの簡単な説明:アップロードするすべてのファイルであるfiles
オブジェクトを持っています。その後、以前のS3関数の署名付きURLをすべて持つsignedUrls
オブジェクトがあります。オブジェクトには一致するインデックスがあります。fileIdが適切にループしていません
最初のaxios.put
はファイルをアップロードし、2番目のaxios.post
はファイルキーを自分のDBに保存します。 (私は正常にアップロードされていない限りDBに保存したくないため、axios.post
のコールバック内の場所)
ファイルは正常にアップロードされていますが、fileId
は正しくループしていません同じfileId
を何度も繰り返し保存します。つまり、5つのファイルをアップロードすると、S3にアップロードされますが、すべてが同じDB内に同じIDを持ちます。これがなぜ起こっているのか?
fileIds = {"1": "someFileId", "2": "someOtherId" }
for (let i = 0; i < files.length; i++) {
axios.put(signedUrls[i], files[i], config).then(res => {
axios.post('https://myapi.com/add-file', {
fileId: fileIds[i]
}).then(res => {
// success
});
てみてください。このよう
。あるいは、少なくとも割り当てられた場所を教えてください。 – destoryer
@destoryer私の編集を参照してください - ファイルIDが番号の付いたキーを持つオブジェクトである場合、このように動作します。私は元の投稿を過度に単純化しました。 – Alan
すべてが私には大丈夫です。 – destoryer