developit / developit/unfetch

fetching files renders invalid blob

オープン
#145 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
5.7k
フォーク
204
PR マージ指標
30日以内にマージされた PR はありません

説明

How it should be
```js
let e = await fetch('https://i.imgur.com/4AiXzf8.jpg')
// Response { type: "cors", url: "https://i.imgur.com/4AiXzf8.jpg", redirected: false, status: 200, ok: true, statusText: "OK", headers: // Headers, body: ReadableStream, bodyUsed: false }
await e.blob()
// Blob { size: 87363, type: "image/jpeg" }
```

How it is with unfetch
```js
let e = await fetch('https://i.imgur.com/4AiXzf8.jpg')
// Object { ok: true, statusText: "OK", status: 200, url: "https://i.imgur.com/4AiXzf8.jpg", text: text(), json: json(), blob: blob(), clone: a(), headers: {…} }
await e.blob()
// Blob { size: 156997, type: "" }
```
Note how the blob's size is different and the type is missing.

That can also be confirmed by using [`FileReader.readAsDataURL()`](https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL) on the generated blob, the resulting file is invalid and cannot be opened.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず issue の fetch と blob の例を再現し、次に unfetch の blob 処理と FileReader.readAsDataURL() の結果を調べます。生成された blob がレスポンスのバイト列と image/jpeg タイプを保持し、生成された data URL が有効な画像として開ければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
api
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。