file_upload_cgi
1.0.0
Das Datei -Upload -CGI ist eine in Perl CGI geschriebene Webanwendung, um die Upload -Rate einer Datei an den Benutzer zu beschränken.
Diese Anwendung ist auf Debian Linux (Jessie) geschrieben.
Sie müssen Nginx, MySQL und Perl CGI installieren.
Konfigurieren Sie NGINX, um rewrite -Regel zu verwenden. Datei /etc/nginx/sites-enabled/default
server {
listen 80 ;
listen [::]:80;
# SSL configuration
#
listen 443 ssl;
listen [::]:443 ssl;
include snippets/yoursites.org.conf;
server_name yoursites.org;
access_log /var/www/html/yoursites.org/logs/access.log;
error_log /var/www/html/yoursites.org/logs/error.log;
root /var/www/html/yoursites.org/public_html;
index index.html index.htm index.php;
rewrite ^/files/(.*)$ /cgi/getfile.cgi?f= $1 last ;
include php-fastcgi;
include perl-fastcgi;
} mkdir /var/www/html/yoursites.org
mkdir /var/www/html/yoursites.org/{files,logs,public_html,public_html/cgi}
Speichern Sie das Skript getfile.cgi unter Verzeichnis /var/www/html/yoursites.org/public_html/cgi
Melden Sie sich bei MySQL als User Root an
CREATE DATABASE upload ;
CREATE USER ' user1 '@ ' localhost ' IDENTIFIED BY ' password1 ' ;
GRANT ALL PRIVILEGES ON ` smscgi ` . * TO ' user1 ' @ ' localhost ' ;
QUIT; Führen Sie dann SQL -Anweisungen in der Datei smscgi.db aus
mysql -u user1 -p upload < upload.db
Erstellen Sie Datei Dummy 1MB und 10 /var/www/html/yoursites.org/files und speichern
DST=/var/www/html/yoursites.org/files
dd if=/dev/urandom of=${DST}/file-1MB.dat bs=1M count=1
dd if=/dev/urandom of=${DST}/file-10MB.dat bs=1M count=10
Starten Sie Nginx neu
/etc/init.d/nginx restart
Verwenden Sie file-1MB.dat
$ wget http://yoursites.org/files/file-1MB.dat
--2024-08-25 15:34:15-- http://yoursites.org/files/file-1MB.dat
Resolving yoursites.org (yoursites.org)... 1.2.3.4
Connecting to yoursites.org (yoursites.org)|1.2.3.4|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576 (1,0M) [application/x-download]
Saving to: ‘file-1MB.dat’
file-1MB.dat 100%[==================================>] 1,00M 112KB/s in 9,1s
2024-08-25 15:34:24 (112 KB/s) - ‘file-1MB.dat’ saved [1048576/1048576]
mysql > select * from getfile;
+ -- --+---------------+-------------+------------+---------------------+
| id | filename | ua | ip | date |
+ -- --+---------------+-------------+------------+---------------------+
| 1 | file - 10MB . dat | Wget / 1 . 21 . 2 | 103 . 47 . 1 . 2 | 2024 - 08 - 25 17 : 01 : 10 |
| 2 | file - 10MB . dat | Wget / 1 . 21 . 2 | 103 . 47 . 1 . 2 | 2024 - 08 - 25 17 : 02 : 17 |
+ -- --+---------------+-------------+------------+---------------------+
2 rows in set ( 0 . 01 sec)
mysql > select * from log limit 3701 , 3703 ;
+ -- --+------------+-------------+------------------+-------+--------+
| id | ip | ua | stime | etime | status |
+ -- --+------------+-------------+------------------+-------+--------+
| 1 | 103 . 47 . 1 . 2 | Wget / 1 . 21 . 2 | 1724579980 . 00809 | 2 | 1 |
| 2 | 103 . 47 . 1 . 2 | Wget / 1 . 21 . 2 | 1724580083 . 71145 | 2 | 1 |
+ -- --+------------+-------------+------------------+-------+--------+
2 rows in set ( 0 . 00 sec)