Gmail.comの分散ファイルストレージネットワーク

優れたgmail.comメールと、7ギガバイトを超えるメールを保存する機能については、誰もが長い間気づいていました。 アカウントにファイルを保存できるGMail Driveのようなプラグインについても誰もが知っていると思います。 しかし、今の話はそれについてではありません。Gmail.comに無制限の数のファイルを分散した冗長な方法で保存できる、本当に機能するシステムについてお話したいと思います。 ですから、3年前に解決する必要があったタスク、拡大するファイルのアーカイブの保管場所、その多くは長期間使用しませんが、有料サービスに懐疑的であるため、無料のアーカイブを作成することにしました。 選択肢はgmail.comにあり、すでにメール用の十分なストレージスペースが提供されていました。

しかし、次のタスクを解決する必要がありました
  1. 3年前のgmail.comのメールサイズは10メガバイトでした
  2. 短期間に600メガバイトを超えるメールをアップロードすると、メールはブロックされます
  3. 短期間に600メガバイトを超えるメールをアンロードすると、メールもブロックされます
ソリューションは単独で提供され、100個のメールアカウントが作成され、ストレージシステムが作成されました。

システムは、次の部分で構成されています。

1.システムへのファイルのアップロード

gmail.comでは10メガバイトを超えるデータを保存できないため、ファイルはチャンクに分割され、部分的にロードされます。 テーブルはMySQLで作成され(投稿の下部にあるアプリケーションを参照)、アカウントが追加され、ダウンロードスクリプトがgmailで記述されました。

2.冗長性を提供する

このため、各チャンクが保存される場所の数を決定するスクリプトが作成されました(そのような場所が2つ未満の場合(たとえば、アカウントがブロックされた、または新しいファイルのみ、スクリプトはチャンクを別のアカウントに移行しました))

3.ファイルをダウンロードする

ファイルをダウンロードするには、各チャンクを保存するアカウントをランダムに選択し、システムに順次ロードします。

4.アカウントの検証。

特別なスクリプトが定期的にアカウントブロックのアカウントをチェックし、この情報をデータベースに保存しました。

5.他のサーバーからダウンロードする

特に、多くのログインを生成しないために、アカウントにログインしてCookieを保存する中央サーバーが作成されました。 特別なプロトコルを使用すると、残りのサーバーはCookieを要求し、ログインステージをバイパスしてすぐにファイルのダウンロードを開始できます。

したがって、ほぼ無制限の数のファイルを保存し、分散ダウンロードネットワークを提供するシステムが作成されました。

アカウント表
Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  1. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  2. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  3. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  4. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  5. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  6. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  7. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  8. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  9. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  10. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  11. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  12. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  13. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  14. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  15. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  16. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  17. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  18. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  19. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  20. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )
  21. Copy Source | Copy HTML CREATE TABLE IF NOT EXISTS `account` ( `ACCOUNT_ID` int (11) NOT NULL auto_increment, `ACCOUNT_LOGIN` varchar (32) NOT NULL default '' , `ACCOUNT_PASSWORD` varchar (32) NOT NULL default '' , `ACCOUNT_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_MAX_SIZE` int (11) NOT NULL default '0' , `ACCOUNT_UPLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_DOWNLOAD_ENABLED` tinyint(4) NOT NULL default '0' , `ACCOUNT_BANNED` tinyint(4) NOT NULL default '0' , `ACCOUNT_ERRORS` int (11) NOT NULL default '0' , `ACCOUNT_INVITES` int (11) NOT NULL default '0' , `ACCOUNT_UPDATE_DATETIME` datetime default NULL , PRIMARY KEY (`ACCOUNT_ID`), UNIQUE KEY `ACCOUNT_LOGIN` (`ACCOUNT_LOGIN`), KEY `ACCOUNT_SIZE` (`ACCOUNT_SIZE`), KEY `ACCOUNT_DOWNLOAD_ENABLED` (`ACCOUNT_DOWNLOAD_ENABLED`), KEY `ACCOUNT_BANNED` (`ACCOUNT_BANNED`), KEY `ACCOUNT_ERRORS` (`ACCOUNT_ERRORS`), KEY `ACCOUNT_INVITES` (`ACCOUNT_INVITES`), KEY `ACCOUNT_UPDATE_DATETIME` (`ACCOUNT_UPDATE_DATETIME`) )

ファイルテーブル
Copy Source | Copy HTML
  1. ` file`が存在し ない場合はテーブルを 作成
  2. `FILE_ID` int (11) NOT NULL auto_increment、
  3. `FILE_NAME` varchar (255) NOT NULL default ''
  4. `FILE_SIZE` int (10)符号なしNOT NULLデフォルト '0'
  5. `FILE_MD5` varchar (32) デフォルトNULL
  6. `FILE_DOWNLOAD_REQUEST_COUNT` int (10)unsigned NOT NULLデフォルト '0'
  7. `FILE_DAMAGED` tinyint(4) NOT NULLデフォルト '0'
  8. `FILE_NONREMOVABLE` tinyint(4) NOT NULLデフォルト '0'
  9. `FILE_ACCESS_DATETIME`日時のデフォルトNULL
  10. `FILE_DOWNLOAD_RATE` float NOT NULLデフォルト '0'
  11. 主キー ( `FILE_ID`)、
  12. KEY `FILE_SIZE`(` FILE_SIZE`)、
  13. キー `FILE_DOWNLOAD_COUNT`(` FILE_DOWNLOAD_REQUEST_COUNT`)、
  14. キー `FILE_NONREMOVABLE`(` FILE_NONREMOVABLE`)、
  15. KEY `FILE_ACCESS_DATETIME`(` FILE_ACCESS_DATETIME`)、
  16. キー `FILE_DOWNLOAD_RATE`(` FILE_DOWNLOAD_RATE`)、
  17. KEY `FILE_MD5`(` FILE_MD5`)、
  18. キー `FILE_DAMAGED`(` FILE_DAMAGED`、 `FILE_NONREMOVABLE`)

チャンクテーブル
Copy Source | Copy HTML
  1. `file_chunk`が存在しない場合のテーブルの作成(
  2. `FILE_CHUNK_ID` int (11) NOT NULL auto_increment、
  3. `FILE_ID` int (11) NOT NULLデフォルト '0'
  4. `FILE_CHUNK_OFFSET` int (11) NOT NULLデフォルト '0'
  5. `FILE_CHUNK_SIZE` int (11) NOT NULLデフォルト '0'
  6. `ACCOUNT_ID` int (11) NOT NULLデフォルト '0'
  7. `FILE_THREAD_ID` varchar (16) NOT NULLデフォルト '0'
  8. `FILE_ATTACH_ID` 10進数 (2,1) NOT NULLデフォルト '0.0'
  9. 主キー ( `FILE_CHUNK_ID`)、
  10. 一意キー `ACCOUNT_ID`(` ACCOUNT_ID`、 `FILE_THREAD_ID`、` FILE_ATTACH_ID`)、
  11. キー `FILE_ID`(` FILE_ID`、 `FILE_CHUNK_OFFSET`)

Source: https://habr.com/ru/post/J66952/


All Articles