AyumuOgasawara / receipt-scanner

レシートの写真から家計簿を生成してくれるアプリ
0 stars 0 forks source link

Nextからs3に画像をアップロードできるようにする #101

Closed AyumuOgasawara closed 2 hours ago

AyumuOgasawara commented 8 hours ago

概要

putPreSignedURLを作成し、そのurlを使って、s3にアップロードする。

詳細タスク

AyumuOgasawara commented 8 hours ago

アップロードするタイミングは今は、解析を押された後にしようとしていたが、クライアント側でアップロードされたシュウんかんにアップロードしてもいいかも。 そうすることで、クライアントを待たせる時間が少なくなるかも。

できるだけ、s3には画像をアップロードしたくないから(多少なりともお金がかかる可能性があるため)とりあえず、解析時にするが、すごく遅いと感じるような場合はクライアントでアップロードされたときにする。

AyumuOgasawara commented 7 hours ago

base64にエンコードされた画像データは、初めにdata:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAADのようにbase64であることを示している。そのため、デコードする際にはその部分を無視するため、atobを使って、以下のようにする。

const byteString = atob(fileData.split(",")[1]);
AyumuOgasawara commented 2 hours ago

Base64文字列をバイト列に変換して、バイナリデータとして扱うためにArrayBufferUint8Arrayを使った。

AyumuOgasawara commented 2 hours ago

blobを使うと、型を指定できるため、いいらしい。よくわかっていない。

AyumuOgasawara commented 2 hours ago

"use sercer"をつけないと、以下のエラーが表示される。

["Error: Resolved credential object is not valid" while executing putObject command](https://stackoverflow.com/questions/75530571/aws-sdk-s3-client-throws-error-resolved-credential-object-is-not-valid-while)