Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(frontend): 拡張子内にドットが含まれるものを正常にアップロードできるように #13699

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

kakkokari-gtyih
Copy link
Contributor

What

ランダム文字列でアップロードする際に、tar.gzなど、拡張子内にドットが含まれるファイルの拡張子が正常に処理されない問題を修正

Why

Fix #13688 (comment)

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

Copy link

codecov bot commented Apr 13, 2024

Codecov Report

Attention: Patch coverage is 51.85185% with 13 lines in your changes are missing coverage. Please review.

Project coverage is 77.91%. Comparing base (f6df940) to head (f261a73).
Report is 2 commits behind head on develop.

Files Patch % Lines
packages/frontend/src/scripts/upload.ts 51.85% 13 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##           develop   #13699       +/-   ##
============================================
+ Coverage    66.46%   77.91%   +11.45%     
============================================
  Files          988      185      -803     
  Lines       116719    25566    -91153     
  Branches      4511      487     -4024     
============================================
- Hits         77572    19920    -57652     
+ Misses       39116     5639    -33477     
+ Partials        31        7       -24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

対応必要?

@kakkokari-gtyih
Copy link
Contributor Author

filename.xxx.yyy みたいなファイルをアップロードするときには必要(現状.yyyだけが抽出される)

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

filename.xxx.yyy が aaaaaaa.yyy になって困ること少ない気もする

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

困る場合は設定をオフにするとか

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

例外の拡張子を列挙するのは管理が面倒になるからあまりやりたくないわね

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

filename.xxx.yyy が aaaaaaa.yyy になって困ること少ない気もする

例えば aaaa.jpg.webp とかは結局webpだから bbbb.webp になっても問題ないし

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Apr 14, 2024

(個人的にはそもそもドライブにtar.gzをアップロードするユースケースが思いつかないので、それ以外に困るパターンがなさそうなら別にどっちでも良いとはおもっている)

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

@kakkokari-gtyih
Copy link
Contributor Author

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

いまそうなってるはず

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

いまそうなってるはず

であれば

ランダム文字列でアップロードする際に、tar.gzなど、拡張子内にドットが含まれるファイルの拡張子が正常に処理されない

は起きえない気がした

@@ -45,7 +71,7 @@ export function uploadFile(
const reader = new FileReader();
reader.onload = async (): Promise<void> => {
const filename = name ?? file.name ?? 'untitled';
const extension = filename.split('.').length > 1 ? '.' + filename.split('.').pop() : '';
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

今の実装はこれ

@kakkokari-gtyih
Copy link
Contributor Author

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

いまそうなってるはず

あ、そうじゃなかった
最後だけ抽出していた

@kakkokari-gtyih
Copy link
Contributor Author

kakkokari-gtyih commented Apr 14, 2024

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

ランダム文字列でアップロードする際に、tar.gzなど、拡張子内にドットが含まれるファイルの拡張子が正常に処理されない

は起きえない気がした

ただそうなった場合 file.name.that.has.many.dots.mp4 とかが 8fd7940a-e859-47a6-988c-5c67cfcba226.name.that.has.many.dots.mp4 とかになって変に処理されそう

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

ピリオドでsplitした最初だけ置き換えるのはダメなのかしら

ランダム文字列でアップロードする際に、tar.gzなど、拡張子内にドットが含まれるファイルの拡張子が正常に処理されない

は起きえない気がした

ただそうなった場合 file.name.that.has.many.dots.mp4 とかが 8fd7940a-e859-47a6-988c-5c67cfcba226.name.that.has.many.dots.mp4 とかになって変に処理されそう

一般的にファイルシステムにおけるファイル名に拡張子を意味する目的以外でピリオドって使われるものなのかしら

@kakkokari-gtyih
Copy link
Contributor Author

許容されないわけではないのでまずそう

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

非常に稀な気がするけどどうなのかしら(特に英語圏)

@kakkokari-gtyih
Copy link
Contributor Author

ユーザーがどんなファイル名のファイルをアップロードするかはこちらでコントロールできることではないのでユーザーの行動を信用しないほうが良い気はする

@Sayamame-beans
Copy link
Contributor

ファイル名に日付が入っているケース(例 VRChat_2024-04-13_00-40-23.477_2560x1440.png)などは見かけますね…
(初めのドットで切るとrandomname.477_2560x1440.pngになる)

@syuilo
Copy link
Member

syuilo commented Apr 14, 2024

🤯

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/frontend Client side specific issue/PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants