Nagy fájlok feltöltése regisztráció nélkül (Google Drive, OneDrive, Dropbox stb.)

Hi,

A megoldandó feladatom a következő.

Adott egy videó pályázat, ahol a pályázóknak kellene fájl feltöltési lehetőséget adnom.
Lehetőleg úgy, hogy az egységsugarú pályázó is fel tudja tölteni a munkáját és ne kelljen előtte regisztrálnia.
Praktikus lenne egy Google Drive űrlap, de ott kell a kitöltéshez Google acc. (Feltöltés előtt be kell kérnem pár adatot.)
100M és max. 1 Gb között változhat a fájl méret. Magyarul kell, hogy beszéljen a megoldás.

Várom az építő ötleteket!
Köszönöm!

Hozzászólások

Hm, ha van rá saját "szerver" esetleg lekódolni HTML + PHP kombóval? Nem hiszem hogy bonyás lenne, saját magam is csináltam (igaz belső használatra) ilyen fájlfeltöltésből linket generálós cuccot. Nem egy nagy cucc. Ha űrlapozni kell, azaz + adat kell a userről akkor azt raksz a FORM-ba amit akarsz.

Persze ez csak akkor megy, ha van rá saját szerver ami erre használható.

Még emailt is kaphatnak a feltöltésről háh :)

Van saját szerver, kb. 15 perc alatt tudok is űrlapot gyártani hozzá :) .
Mondjuk feltolom a post_max_size-t meg a set_time_limit-et az egekbe és bízok benne, hogy sikerül egyben feltölteni a kérdéses fájlt.
Vagy használom ezt a lib-et: https://github.com/moxiecode/plupload
Okosságnak tűnik.
Valószínűleg saját megoldás lesz, hacsak valakinek nincs más javaslata.

#!/usr/bin/perl -wT

use strict;
use CGI;
use CGI::Carp qw ( fatalsToBrowser );
use File::Basename;

$CGI::POST_MAX = 1024 * 5000 * 1000; // vagy amekkorát akarsz
my $safe_filename_characters = "a-zA-Z0-9_.-";
my $upload_dir = "/home/mywebsite/htdocs/upload";

my $query = new CGI;
my $filename = $query->param("video");

if ( !$filename )
{
print $query->header ( );
print "Hiba történt a feltöltéskor";
exit;
}

my ( $name, $path, $extension ) = fileparse ( $filename, '..*' );
$filename = $name . $extension;
$filename =~ tr/ /_/;
$filename =~ s/[^$safe_filename_characters]//g;

if ( $filename =~ /^([$safe_filename_characters]+)$/ )
{
$filename = $1;
}
else
{
die "Különleges karakter ne legyen a fájlnévben.";
}

my $upload_filehandle = $query->upload("video");

open ( UPLOADFILE, ">$upload_dir/$filename" ) or die "$!";
binmode UPLOADFILE;

while ( <$upload_filehandle> )
{
print UPLOADFILE;
}

close UPLOADFILE;

print $query->header ( );
print <<END_HTML;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Thanks!</title>
<style type="text/css">
img {border: none;}
</style>
</head>
<body>
<p>A videód feltöltődött!</p>
<p>Elérési útja:</p>
<p><a href="/upload/$filename" alt="video" /></a>/p>
</body>
</html>
END_HTML

Nem saját kód, de csak lustaságból. A webkiszolgáló programot a méret miatt jó eséllyel konfigolni kell.

Az ilyenekre tipikusan készíteni szoktak egy microsite-ot, ahol van egy tájékoztatás + egy fájlfeltöltési form, amin keresztül két kattintással fel lehet tölteni a nevezési anyagot.

Ilyet akár házilag is lehet készíteni némi HTML/CSS/JS/PHP tudás birtokában, de meg lehet bízni egy webdesign-nal foglalkozó céget is vele (attól függően, mennyi pénzt szántok rá). Ha kész, egy webtárhelyre kiélesíted a site-ot és készen is vagy. Arra nem árt odafigyelni, hogy legyen elég tárhely a nagy méretű fájlok tárolására, erre értelemszerűen egy olcsó, 100MB tárhelyet biztosító webtárhely nem lesz alkalmas!

Esetleg a SharePoint jöhetne még szóba, ha van O365 előfizetésetek, bár nem tudom, ott van-e lehetőség account nélkül fájlt feltölteni.

Fontos, hogy ha személyes adatokat is kértek be a pályázóktól, akkor a GDPR szerint eljárva kell azokat kezelni, aminek része, hogy legyen a site-on jól látható helyen elérhető adatkezelési szabályzat és egy checkbox a formon, amivel jelzi a pályázó, hogy elfogadja a szabályzatot és hozzájárul a megadott adatok kezeléséhez!

Esetleg a Jirafeau fájlfeltöltő alkalmazás, szükség szerint kiegészítve?

nem feltétlenül ezt keresed (angol nyelvű a site) de 10 GB-ig szabadon lehet feltölteni, curl-lel is lehet használni, sőt, így még egy csomó paramétert meg is lehet neki adni, pl hogy hány letöltést engedjen, a maximum alatt mennyi ideig tárolja a feltöltött állományt meg még elég sok mást is: https://transfer.sh

"all submitted complaints will be forwarded to /dev/null for further investigation"
"ez ilyen hippi kommunás felfogás, ahogy Stallman sámán módjára dobol a nagy hasán, hogy GNU, free software, free as free beer."