DIY 7牛先端アップロード
1695 ワード
私たちのプロジェクトの中に大量の画像がアップロードされ、展示されています.私たちは7牛をCDNとして選んだ.この中の一つの重要な原因は、qiniuがフロントエンドをサポートして直接アップロードするからです.ややもすれば4-5 MBのピクチャーは私達のap serverまで一回り回転しなくてもいいです.フロントエンドアップロードをサポートするために、Qiniuはjavascript SDKを提供します.でもコードを見ました.大きすぎます.7000行以上のjavascriptがあります.本当に必要ですか?必要がありますか?必要がありますか?DIYを一つ決めました.正直に言えば、qiniuは様々なSDKを提供しています.REST APIで直接アップロードすることは勧められません.APIに関する呼び出しも簡単です.だから、ちょっと力がかかりました.この文があるから
何かのように、解決したら簡単だと思います.同じように何かのように、ビッグピctureを理解すれば、もっとやりやすくなります.
qiniuは大きなファイルをサポートするために、ユーザーがファイルをブロックに分けてアップロードすることができます.すべてのファイルブロックをアップロードした後、すべてのブロックを完全なファイルにします.少なくとも論理的にはそうです.物理的な記憶はどうですか?自分だけが知っています.
私たちは2.5 MBのファイルを例にします.ファイルを3つのブロックに分けてアップロードします.blockSizeは1 MBに設定します.次のような操作が必要です.block 1をアップロードする.qiniuサーバは、このblockを識別するためのctxを返します.例えば block 2をアップロードする.qiniuサーバは、このblockを識別するためのctxを返します.例えば block 3をアップロードする.qiniuサーバは、このblockを識別するためのctxを返します.例えば Qiniuサーバという新しいファイルは、 具体的にAPIに行くと、こうなります. 最後に2点を追加します.ファイル内容の読み込みと各ステップ間の接続はpluplloadによって行われます.これは公式のSDKとも一致します.しかし、コードの量が少ないです. qiniuはblock内部でchunkに分けてアップロードできます.利用
何かのように、解決したら簡単だと思います.同じように何かのように、ビッグピctureを理解すれば、もっとやりやすくなります.
qiniuは大きなファイルをサポートするために、ユーザーがファイルをブロックに分けてアップロードすることができます.すべてのファイルブロックをアップロードした後、すべてのブロックを完全なファイルにします.少なくとも論理的にはそうです.物理的な記憶はどうですか?自分だけが知っています.
私たちは2.5 MBのファイルを例にします.ファイルを3つのブロックに分けてアップロードします.blockSizeは1 MBに設定します.次のような操作が必要です.
abcd
efgh
ijk
abcd
、efgh
とijk
3つのブロックで構成されていると教えてください.また、提供key
.ファイルを生成できます.POST /mkblk/1048576
アップロード開始の1 MBファイルの内容.サーバはctxと他の内容を返します.POST /mkblk/1048576
アップロード途中の1 MBファイルの内容.サーバはctxと他の内容を返します.POST /mkblk/524288
最後の0.5 MBのファイル内容をアップロードする.サーバはctxに戻って他の内容になりました.POST /mkfile/2621440/key/
.ファイルを作成します.POSTのbodyでは上の3つのctxを順に並べてカンマで分けます.このようにファイルが作成されます.上記のようにPOSTのbodyの内容はabcd,efgh,ijk
/bput
APIでctxを指定すればいいです.複雑で特別な需要がないので、採用しませんでした.