iT邦幫忙

1

哪種語言或Server適合做上傳檔案

本篇問題主要是疑問YOUTUBE的上傳是透過哪種語言撰寫?

以往我寫上傳檔案..
都是PHP或ASP或Javascript等

但是通常都是設計來上傳小檔案
例如圖片、文字檔..

最近做一個案子..
扯到要上傳大量影片~

雖然已有解決方案~
討論好要利用YOUTUBE作為平台~
然後分享連結就好~
簡單又不用架SERVER~XD

不過...
我就是好奇阿!!(求知慾旺盛!!)
像YOTUBE這樣的影音網站~
他背後的SERVER是如何設定的~
上傳"影片"的語言又是誰?
影片的上傳..一般使用者還是有所限制(15分鐘)
但有付費的使用者..
卻可以上傳多達3至4小時的影片
這檔案大小肯定是以GB在計算的..

上網查都查到教你怎麼上傳影片...= =
只有查到一篇有講到API的有扯到Python
這是指上傳都用Python製作的嗎?!

另外..GOOGLE的所有跟上傳有關的Web應用程式..
例如雲端、Gmail、文件、相片...等等
也都是用Python做的嗎?

如果是..
是不是代表Python對於上傳這段相較於其他語言來得優呢?

有付費的使用者..
卻可以上傳多達3至4小時的影片 =>這是誤會吧
我沒付費也能傳啊,重點是你要有手機給他做驗證,驗證過了就能傳了
0
WilliamHuang
iT邦大師 1 級 ‧ 2017-12-01 14:06:19

建議Python跟R
因為他是對色情軟體
不 是社群軟體專用的
(這是某天跟業務經理開會她突然問有用什麼社群軟體)
我當下驚醒~~~

社群軟體阿~~
那...單論上傳功能呢?

0
froce
iT邦新手 3 級 ‧ 2017-12-01 20:46:41

...哪種語言都可以處理啊。
拿我熟悉的框架(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.

0
混水摸魚
iT邦新手 4 級 ‧ 2017-12-05 13:36:17

影音壓縮轉檔,影片截圖
https://www.webteach.tw/?p=319

多檔上傳套件
https://blueimp.github.io/jQuery-File-Upload/

我要發表回答

立即登入回答