[英]Generate a random URL with Python using App Engine
我知道關於這個主題在Stackoverflow上有很多問題要問和回答,但是我希望由於這個問題需要一些其他信息,因此可以保證有自己的空間,或者可能對其他人有用。
我有一個使用Python在應用程序引擎上運行的網絡應用程序,我希望能夠向用戶發送唯一的URL,並限制其他用戶根據接收到的URL來猜測URL的能力。 我希望不需要對用戶進行身份驗證即可查看與url相關的數據。
我的問題是關於創建,可能檢查和存儲URL的最佳方法。 一種選擇是使用uuid.uuid4()
並將此值存儲在數據模型中以檢索信息。 我可以使用uuid.uuid5
並使用數據存儲區中的key_value
,也可以對每個選項進行base64
編碼,或者我可以簡單地使用數據存儲區key_value
嗎?
無論選擇哪種方法,它都將是唯一的,因此我不需要檢查URL是否已存在於數據存儲中,還是應該謹慎地檢查URL是否先前已生成?
最后一個問題是我應該將網址存儲在數據存儲區中還是使用函數將網址映射回數據存儲區中的現有數據。
總結一下:
謝謝
足夠大的隨機字符串應該足夠好,因為碰撞的可能性將很小。 我猜您也可以使用數據存儲區中的自動密鑰,因為可以保證它們是唯一的。
如果您遵循1,我認為沒有必要。
我會在數據存儲區中創建一個實體,該實體將url映射到您要提供的服務,而不是通過哈希函數。 這樣,您將可以更好地控制要公開的對象和要保密的對象。 而且,如果您看到一個網址公開,則可以輕松對其進行更改。
如果您要在Cloud Storage上提供服務,則可以嘗試Signed URLs 1 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.