ユーザーがビデオをサーバーのファイルシステムにアップロードするシステムを作成しました。ビデオファイルの固有のファイル名を生成する方法が必要です。私はrandom.getrandbitsを使うべきですか?文字と数字の組み合わせでこれを行う方法はありますか?ランダムなファイル名で安全なURL安全な文字列を生成する
答えて
Universally unique identifiers (UUID)
とPythonのモジュールuuid
を見てください。
これは私が使用するものです。
import base64
import uuid
base64.urlsafe_b64encode(uuid.uuid4().bytes)
私はUUIDを生成するが、私は代わりに、より大きな六角バージョンやダッシュと1のバイトを使用します。次に、URLで安全なbase64文字列にエンコードします。これは、16進数を使用するよりも短い文字列ですが、base64を使用すると、文字列内の文字がファイル、URLおよび他の多くのものにとって安全になります。
1つの問題は、urlsafe_b64encodeを使用しても、常にurl-safeではない最後に「=」サインを付けたいということです。 Pythonの3.6で、
str.replace('=', '')
これは私が今必要としているものです。ありがとう!ちょうどあなたが低得点の質問へのあなたの答えがインターネット上のランダムな男を助けたことを知りたいと思ったと思った。 –
フィードバックいただきありがとうございます。私たちのために、今までのテストに耐えて、ほぼ1年後には、アプリケーション全体にプライマリ・キーを生成するためにこの小さなコードを使用します。 –
Python 3では、 '.decode( 'utf-8')'をインクルードして、置換を行う文字列を取得しなければならないことに注意してください: 'base64.urlsafe_b64encode(uuid.uuid4()。bytes).decode( 'utf-8 ').replace(' = '、' ') ' – jakewins
あなたが使用することができます:あなたが唯一のランダムな文字列を生成しようとしているので、もし「=」sの兆候は、あなたはおそらくそれらを削除safeyすることができ、base-64でエンコードされた情報を復号するためのものです、シークレットモジュール
>>> import secrets
>>> secrets.token_urlsafe(8)
'Pxym7N2zJRs'
さらにドキュメントはここにある:https://docs.python.org/3/library/secrets.html
- 1. ランダムな文字で安全なパスワードを生成
- 2. 安全なunicode文字列/名前
- 3. Haskellで「安全にランダムな」文字列トークンを生成するには?
- 4. 安全な船名
- 5. 安全な文字列の比較
- 6. JavaScriptの安全な文字列
- 7. 安全な文字列出力
- 8. 安全なランダムをJavaでシードする
- 9. 安全で安全なセッション名とは何ですか?
- 10. char []からの安全でない文字列の作成
- 11. Pythonで安全な文字列に日付をシリアル化する
- 12. Powershell - 安全な文字列で行をマスクする
- 13. Javaで安全なランダムAESキーを作成する方法は?
- 14. 安全な安眠スプリングブートアプリケーション
- 15. 安全なレコードフィールドクエリ
- 16. 安全なマルチスレッドカウンタインクリメント
- 17. 安全なログイン
- 18. 最小の文字数のURLで安全なUUID
- 19. 安全なPHPファイルのアップロード
- 20. 安全なファイル拡張子
- 21. はconfig.jsonで安全な接続文字列です
- 22. 安全な文字列にforceとAsPlainTextが必要な理由
- 23. 安全な文字列をAndroidに保存する方法は?
- 24. 文字列をWeb安全なURIに変換する
- 25. 安全なwebsocketと安全でないwebsocketのコスト
- 26. 安全でない状態と安全な状態
- 27. 安全なCookieと安全でないCookieの違い
- 28. 安全でないURL値のサニタイズ
- 29. Angular2 + imgcache安全でないURL
- 30. 安全なログインを作成する
の可能重複http://stackoverflow.com/questions/2257441/python-random-string-generation-with-upper-case-letters-and-digits –
あなたはどのフレームワークを使用していますか?これはしばしばあなたのために処理されます。既存のhttp://docs.python.org/library/tempfile.htmlライブラリに問題がありますか? –
@ S.Lott私は彼が一時的にビデオを保存したいとは思わない。 – Gandaro