рд╣рдореЗрдВ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐
рдЯреНрд░реИрдХ рдлреНрд▓реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢реБрд░реВ рдХрд░ рд░рд╣реА рд╣реИред рдЖрдЬ рд╣рдо рдУрдкрди рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд╡рд┐рдХрд╛рд╕ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - PHP рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд░реНрд╡рд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде C # рдореЗрдВред
рдХреГрдкрдпрд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ - рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд▓рд┐рдЦреА рдЧрдИ рдереА рдФрд░ рддрдм рд╕реЗ рдЗрд╕реЗ fidel.ru, рдФрд░ рдлрд┐рд░ trackflow.com рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЦреБрд▓реА рдкрд╣реБрдВрдЪ рдореЗрдВ рдмрд┐рдЫрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдХрдВрдШреА рдХрд┐рдпрд╛ред
рдпрд╣ рдХреЛрдб рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА (рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЧреМрд░рд╡
- рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛрдб - рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЬрд╛рдВрдЪрдирд╛ рдФрд░ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ
- рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рд╛рдордЧреНрд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрдореА
- рдордирдорд╛рдиреЗ рдЖрдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ *
* рдПрдХрдорд╛рддреНрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ md5 рдлрд╝рд╛рдЗрд▓ рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдПрдХ TimeOutException рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкреНрд░рддрд┐ рдкреЛрд╕реНрдЯ рдПрдХ POSTред рдбрд╛рдЙрдирд▓реЛрдб рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдкреНрдд рднрд╛рдЧ рдХреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рднреА рдХрд╛рд░реНрдп рд╕рдордп рд▓рдХреНрд╖реНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред
рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ:
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
-
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
-
/<_>//<___id>/<___id>/<-__id>/<filename.ext>
, .
Nginx X-ACCEL_REDIRECT . Nginx.
Nginx + php-fpm. nginx :
server { listen <your_LAN_ip>; server_name <you_file_storage_hostname>; location /<location_name> { internal; root <storage_root_path_should_be_the_same_in_lib.php>; } location ~ \.php { root /<path_to_php_code>; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /<path_to_php_code>/$fastcgi_script_name; include fastcgi_params; } }
рд╕рд░реНрд╡рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ <path_to_php_code> рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВрд╣рдо lib.php рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ - getfsroot () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрде рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП <storage_root_path_should_be_the_same_in_lib.php>; getlocroot () рдлрд╝рдВрдХреНрд╢рди рдХреЛ <location_name> рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрд╣рдо <рд╕рдВрдЧреНрд░рд╣рдг_root_path_should_be_the_same_in_lib.php> рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ Nginx / php-fpm рдХреЗ рд▓рд┐рдП, рд╣рдо рд▓рд┐рдЦрд┐рдд рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВредрдпрджрд┐ рд╣рдо 512KB рд╕реЗ рдмрдбрд╝реЗ рдЪрдВрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ php-fpm, nginx рдФрд░ php.ini рдореЗрдВ рдЕрдкрд▓реЛрдб рдкрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рд▓рд┐рдЦрдиреЗ рд╣реЛрдВрдЧреЗред
рдХреИрд╕реЗ рдкреИрдорд╛рдирд╛ рд╣реИ
рд╕рдВрдЧреНрд░рд╣реАрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд▓реБрдлрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде, рдЕрдм рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрд╡рддрд╛рд░ рдФрд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХрд╡рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рджреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди (рдЧреБрдВрдЬрд╛рдЗрд╢) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЪрд┐рддреНрд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрдХрд╛рдИ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдЖрдХрд╛рд░ sysnem (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ImageLarge) рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрдХрд╛рдИ рдФрд░ jpg рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рдЗрдХрд╛рдИ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЬрд╛рдирдиреЗ рдФрд░ рдЗрдХрд╛рдИ рдХреЗ рдЕрдиреБрд░реВрдк рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн
Git solution repository: https://github.com/tracksflow/FileStorage
рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рдЖрдкрдХреЛ TracksFlow.com рдкрд░ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛рдПрдВрдЧреЗ, рдЕрдЧрд░ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдирд╣реАрдВ рд╣реИрдВред рдЦреИрд░, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИрдВ - рдЖрдЬ рд╣рдо рдЙрди рд╕рднреА рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкреАрдПрдо рдХреЛ рдХрдВрдкрдиреА рдХреЗ рдХрд┐рд╕реА рднреА рдХрд░реНрдордЪрд╛рд░реА рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ (рд╕рдВрджреЗрд╢ рдореЗрдВ рдИрдореЗрд▓ рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ)ред