本篇問題主要是疑問YOUTUBE的上傳是透過哪種語言撰寫?
以往我寫上傳檔案..
都是PHP或ASP或Javascript等
但是通常都是設計來上傳小檔案
例如圖片、文字檔..
最近做一個案子..
扯到要上傳大量影片~
雖然已有解決方案~
討論好要利用YOUTUBE作為平台~
然後分享連結就好~
簡單又不用架SERVER~XD
不過...
我就是好奇阿!!(求知慾旺盛!!)
像YOTUBE這樣的影音網站~
他背後的SERVER是如何設定的~
上傳"影片"的語言又是誰?
影片的上傳..一般使用者還是有所限制(15分鐘)
但有付費的使用者..
卻可以上傳多達3至4小時的影片
這檔案大小肯定是以GB在計算的..
上網查都查到教你怎麼上傳影片...= =
只有查到一篇有講到API的有扯到Python
這是指上傳都用Python製作的嗎?!
另外..GOOGLE的所有跟上傳有關的Web應用程式..
例如雲端、Gmail、文件、相片...等等
也都是用Python做的嗎?
如果是..
是不是代表Python對於上傳這段相較於其他語言來得優呢?
...哪種語言都可以處理啊。
拿我熟悉的框架(Django)來解釋,server在收到browser送出的request後,後端邏輯會把file的部份去做處理。
如果是大檔案,為了不搞爆你server的記憶體,通常會把檔案分成一塊一塊的暫存,然後把這一塊一塊的暫存在你硬碟上組合起來。
def handle_uploaded_file(f):
# 上傳檔案
with open('some/file/name.txt', 'wb+') as destination:
# 用寫入模式打開你要寫入的檔案
for chunk in f.chunks():
# 把在記憶體中的檔案分塊,對所有塊做迴圈
destination.write(chunk)
# 組合分塊
官方文件還特地加了下面這句:
Looping over UploadedFile.chunks() instead of using read() ensures that large files don’t overwhelm your system’s memory.