Uploadcare-サイトおよびアプリケーションのファイルストレージ

画像

こんにちは 多くの開発者に役立つと思われるプロジェクトについてお話したいと思います。 要するに、なぜそれが必要なのかを説明するのは非常に難しいですが、試してみます。 Uploadcareは、ユーザーからのファイルの受信、保存、ネットワーク経由の送信を簡素化するアプリケーションおよびサイト向けのサービスです。



<input type="file">



フォームを作成したことがある人なら誰でも、それについて複雑なことは何もないことを知っていますが、途中で不快な瞬間が生じることがあります。 それらのほんの一部を次に示します。



-ajaxでファイルと一緒にフォームを保存することはできません。

-選択したファイルでフォームを表示することはできません。

-画像が必要な場合は、画像がロードされていることを確認する必要があります。

-サーバーは、大きなリクエスト本文を受け入れる準備ができている必要があります。

-一部のフレームワークでは、ダウンロードしたファイルが危険性の増加の原因になります。

-いくつかのファイルの便利なダウンロードは非常に困難です。

-読み込みプロセスの表示はさらに複雑です。

-サーバーディスクの容量が不足する可能性があります。



Uploadcareは、これらの問題を解決することを目的としています。 操作の原理は非常に簡単です。ユーザーがファイルを選択するフォームにウィジェットを埋め込みます。 ウィジェットは、ユーザーが選択したファイルの識別子を提供します。 将来的には、この識別子のみを使用します。データベースに保存し、それを使用してファイルへのリンクを作成します。



画像



これにより、上記の問題の多くが取り除かれます。 識別子はajaxで保存できます。 それをフォームに再度転送すると、ウィジェットはファイルを認識してユーザーに表示します。 ファイルを選択すると、ウィジェットはユーザーに画像のみをダウンロードできることを通知できます。 ウィジェットを使用して、ユーザーは複数のファイルをアップロードできます。 Uploadcareが突然スペースを使い果たすことはなく、その増加はディスクの再パーティション化やサーバーのシャットダウンなどの問題とは関係ありません。



ユーザーがアップロードしたファイルがすぐにアカウントに関連付けられるわけではありません。 APIを介して表示されますが、他の方法でアクセスすることはできません。 サーバーがファイルが本当に必要であることを秘密鍵と特別なAPIメソッドで確認した後にのみ、ファイルは公開されます。 これは通常、フォームがユーザーの残りのデータで「検証」された後に発生します。 したがって、一部のユーザーまたは攻撃者でさえ、不要なものをダウンロードできることを心配する必要はありません。 APIメソッドを呼び出すには、ほとんどの一般的な言語とフレームワークで利用可能な既製のライブラリを使用できます。 ただし、アプリケーションがサーバーを想定していない場合、この動作を変更する方法があります。アカウントとウィジェットで設定を有効にすると、秘密鍵なしでファイルを保存できます。



しかし、ファイルを受け入れることはそれほど悪くありません。 その後、それらも配布する必要があります。 これには、広いチャネルが必要です。 写真は、異なる解像度、または複数の解像度でつまむ必要があります。 また、大きなファイルを配布するとオペレーティングシステムのキャッシュが詰まるため、別のサーバーでこれを行うことも有効です。



そのため、UploadcareにはスマートCDNがあります。 他の通常のCDNと同様に、識別子によってファイルを簡単に提供できます。 そして、それらに異なる操作を適用できます。 写真の場合は、サイズ変更、トリミング、別の形式への変換、回転などです。 どの画像を受け取りたいかをURL説明すると、CDNから提供されます。



もちろん、Uploadcareの前には、たとえば画像のサイズを変更するための既製のソリューションがありました。 または、「無限」のS3にファイルを保存できるさまざまなライブラリ。 しかし、それらの設定は依然として非常に面倒であり、すべての問題を解決しませんでした。 また、ソーシャルネットワークやクラウドサービスからファイルをダウンロードしたり、ユーザーがファイルのアップロード中に画像の適切な部分を切り取ったりする機能を実現した人はほとんどいませんでした。 Uploadcareを使用すると、自動的に取得できます。



画像



プロジェクトには、特定の要件がある場合に直接使用できる2つのAPI(CDNを除く)があります:公開キーによってアクセス可能なファイルアップロードAPIと 、秘密によってアクセス可能な残りのAPI 。 これにより、ファイルのダウンロードが一般的なWebだけでなく、モバイルデバイスやデスクトップアプリケーションでもUploadcareを使用できます。 ところで、iOS用の既製のライブラリは既にあります。



Uploadcareアーキテクチャに関する別の記事を書くことができます(ところで、これはできますか?)。 しかし、要するに、すべてが信頼性のある順序になっています。 サーバーはAmazonクラウドで実行され、簡単に水平に拡張できます。 異なるノードが異なる機能を担当します。 ベースサイトとメインサイトが落ちても、CDNは引き続きファイルを配布し、写真のサイズを変更します。 CloudFlareはコンテンツの配信を担当しています。 ユーザーファイルはS3に保存され、アカウント用に独自のS3ストレージを接続することができます。これは、大きなファイルを保存する場合に役立ちます。



画像



プロジェクトがあなたに興味を持っているが、何かがあなたに合わないなら、コメントで尋ねて、提案することをheしないでください。



All Articles