PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [spark7162] Wie buildet ihr das HDMU Image?



svox
01.06.2013, 14:23
Moin,

als erstes gibts ja die neuesten Images immer erst für die ufs. Es gibt da also scheinbar kein Automatismus der das builden übernimmt.

Meine Frage ist, warum ihr das nicht habt?
Buildet ihr immer lokal und schiebt es dann per FTP (Pureftp :D) auf den Server?

Was benötigt man zum builden und was kann Euer Server?
Wäre es nicht möglich das build Scripte auf den Server automatisch laufen und das builden übernehmen? Oder müsst ihr da immer handanlegen bzw. wäre das aufgrund der Server Performance etc. nicht möglich?

santa
01.06.2013, 14:36
Wir haben einen kleinen server mit dem wir online bauen, der baut nur 913, innerhalb von sehr kurzer zeit.
Der ist aber jetzt schon an seinen Grenzen an der Speicherausnutzung.

Die meisten anderen Images baue derzeit ich zuhause auf meinem Server, der ist nicht der schnellste, aber
er baut alles.
Ich bin derzeit so verbunden: Download: 18141 Kbps und Upload: 925 Kbps

Deswegen dauert der Upload etwas länger, dummerweise habe ich eben was anderes nebenbei laufen lassen,
was mir einige Uploads kaputt gemacht hat.

Es wird alles per scripts automatisch gebaut und hochgeladen, und wenn man dann nicht aufpasst kommt
auch mal müll hoch, lade ich nachher wieder richtig hoch.

Bitte deswegen nochmal darauf zu achten, das wirklich auch die passende md5 auf dem Server ist,
bevor ein image geladen wird.

Man könnte natürlich auch einen Buildserver verwenden, aber der brauch power und platz, der vom
aaf kostet 2000€ im Jahr, das ist uns zu viel, dann lieber lokal mit hochladen.

svox
01.06.2013, 14:50
Danke für die Info santa!
Ja der blöde Upload ist so ne Sache. Ist bei mir leider auch nicht schneller. Deswegen insgesamt eine nervige Sache.
Toll ist es wenn ihr einen Server hättet auf dem SVN oder GIT läuft, ihr euren Code auf diesen eincheckt und dann automatisch oder manuel builden könnten.
Dann gibts keinen Stress mit Upload-Geschwindigkeit.

Ich habe selbst einen Server mit etlichen Domains drauf. Sooo teuer ist das ganze nicht, aber natürlich kostet es Geld und das ist immer so ne Sache wenn man etwas kostenloses anbietet.

Bei Hosteurope gibts ganz günstige Virtual Server mit ordentlich RAM und Traffic Flat.
Aber was genau musst den der Server können?
Benötigt ihr zwingend root Zugriff?

Vielleicht gibt es auch noch kostenlose Möglichkeiten, je nach dem was ihr braucht.

Ist Eure Images/Changelog Seite mit PHP gemacht (gehe mal stark von aus da ihr einen Apache Server nutzt)?
Falls ja, kann ich Euch das auch gerne so umschreiben das ein Image erst erscheint wenn die Files komplett sind.

bonkel
01.06.2013, 14:53
ohne root kein image ^^

BPanther
01.06.2013, 14:56
@santa: Genau so mache ich das bei mir auch. Hier baut nen Schleppi alles automatisch durch und läd derweil dann auch gleich fertiges hoch. Braucht zwar nen paar Stunden, aber hat Zeit, rennt alles nicht weg. ;)

santa
01.06.2013, 15:00
Die rootrechte sind zwingend notwendig, teilweise wird root sogar während des bauens gebraucht,
das ist bei den 913 nicht der Fall.
Es ist auch nicht so schlimm das nicht jedes Image für jede Box kommt, da die meisten changes nur kleine
Testchanges sind und wenn das getestet wurde, dann werf ich eben meine Mühle an.

Das mit dem php sollte für bonkel kein Problem sein, denke aber das dies Faulheit ist:p und im Normalfall
ist dies ja auch nicht so tragisch weil es recht schnell geht oder ich nachts bauen lasse.

svox
01.06.2013, 15:13
Das mit dem php sollte für bonkel kein Problem sein, denke aber das dies Faulheit ist:p und im Normalfall
ist dies ja auch nicht so tragisch weil es recht schnell geht oder ich nachts bauen lasse.

Hehe, nicht immer gleich davon ausgehen das Euch jemand unterstellt das ihr was nicht könnt. Nur hat man halt nur zwei Hände und 24 Stunden am Tag. Und da es ja fast ein OpenSource Projekt ist, bin ich davon ausgegangen das Hilfe gerne gesehen wird.

Ich glaube helfen kann man Euch nur wenn man was eigenes macht, das man Euch fertig geben kann.
Nicht böse gemeint, aber ich für meinen Teil werde es in Zukunft sein lassen.

Danke aber santa das Du im Detail geantwortet hast.

santa
01.06.2013, 15:35
für die imageanzeige wird AutoIndex (http://autoindex.sourceforge.net/)verwendet, ich habe es mir nicht angesehen, aber wahrscheinlich
könnte man das sogar schneller einstellen als man denkt.

svox
01.06.2013, 17:03
Habe das Script etwas geändert.... habs einfach direkt im Code gemacht da ja nicht davon auszugehen ist das es bald eine neue Version vom Script gibt (letztes Update 2007) ;)

In AutoIndex.conf.php
md5_zip_file_check 1

In FileItem.php:

/**
* check if zip file has md5 checksum file and if its true, check if md5 checksum is equal
*
* @return true or false
*/
public function checkZipMD5Checksum()
{
if(self::file_ext() == 'zip')
{
$zipFile = Item::make_sure_slash($this->parent_dir) . $this->filename;
$md5File = $zipFile . '.md5';


$md5Checksum = self::getMD5StringFromFile($md5File);


if($md5Checksum != null)
{
if($md5Checksum == md5_file($zipFile))
{
return true;
}
else
{
return false;
}
}
}


return true;
}


private function getMD5StringFromFile($md5File)
{
if(is_file($md5File) && is_readable($md5File))
{
$md5Checksum = file_get_contents($md5File, null, null, null, 32);


return $md5Checksum;
}


return null;
}


Im __constructor als letztes:



if($config->__get('md5_zip_file_check'))
{
if(!$this->checkZipMD5Checksum())
{
$this -> filename = false;
}
}


Das md5 file wird weiterhin angezeigt, ich habe nur das zip file rausgenommen bis die md5 checksum mit dem file übereinstimmt.
Es setzt allerdings voraus das das md5 file als erstes hochgeladen wird. Wenn ihr wollt kann man es auch so abändern das zip files nur noch angezeigt werden wenn auch ein entsprechendes md5 file vorhanden ist und dessen checksum übereinstimmt.

Außerdem könnte man noch ein Verzeichnis anlegen in dem man die Prüfsummen im Erfolgsfall abspeichert, da md5_file nicht sonderlich performant ist und man würde sich das prüfen bei jedem Aufruf sparen.

santa
01.06.2013, 17:22
gibt es auch ne methode die weniger den server belastet?
vom upload her ist es für uns auch einfacher das erst das image und dann die md5 geladen wird.

svox
01.06.2013, 17:55
md5_file ist ein PHP Process. Den kann ich nicht optimieren. md5 ist halt bekannt dafür das es etwas Last erzeugt besonders bei großen Dateien.

Ich habe gerade ein Test gemacht mit einem eurer Images (45 MB):
Bei 100 Aufrufen benötigt mein lokaler Server (nicht besonders schnell) 11 Sekunden.

Interessant wäre zu wissen wie ihr die Dateien hochladet.

Ich würde es wohl ganz anders lösen, kommt aber darauf an ob ihr das umsetzen könnt:

1. Image-Upload Verzeichnis einrichten
2. CronJob einrichten der alle x Mins ein Script aufruft das prüft ob im Upload Verzeichnis was enthalten ist
3. Script macht meine MD5 Überprüfung.
4. MD5 Files für Dateien die hochgeladen werden sind Pflicht, d.h. es geht erst ein File Online wenn das md5 File enthalten ist und die Prüfsumme übereinstimmt
5. Wenn das Script sagt das alles ok ist, wird die Datei in das Online Verzeichnis verschoben wo es das AutoIndex Script dann auslesen und anzeigen kann (das md5 File könntet ihr dann auch weglassen)

Alternativ könnte man den Cronjob auch weglassen und ihr startet am Endes des Uploads das Script selbst, ist aber nicht so schön ;)

santa
01.06.2013, 18:04
Wir müssen mal sehen, vielleicht kommt auch was ganz anderes, der Zähler hatte sich ja ne Zeitlang fast täglich aufgehangen weil zu viele anfragen von außen über ein Tool kamen.
Dies ist derzeit zwar nicht der Fall aber deswegen ist eine Variante sinnvoller die in das Forum integriert ist, damit nur User laden können.

Zusätzlich finden derzeit viele das image nicht, das wäre somit auch gelöst.
Aber das ist alles ungewiss.

svox
01.06.2013, 18:08
... sollte ja alles auch einfach machbar sein.

Keine Ahnung ob man für das Board hier leicht Plugins entwickeln kann, aber im Notfall checkt man einfach die Session und weis dann ob der User eingeloggt ist oder nicht.