Hi, id'like to know the opinion about to ensure external file integrity. Scenario: A web application that uses binary files( images, PDF's ). On the database ( postgresql 7.2.2 ) i store the filename of the files.
The files ( images only ) are taken from an internal machine when needed( via ftp ) or automatically at idle periods.If the image comes throuth ftp( requested by a user ), the image is downloaded to a temporary directory, a record is inserted into the database and the file get's moved to the final directory if it passed some tests.If no image is requested by a user, a script will download( rcp ) at night the files and then put those in the final directory.When a user request's a PDF, i create the PDF in realtime, using info. stored in the DB plus the image( store on filesystem ). My concern here is the folowing: let's imagine that an image file is overwriten with a new image( by mistake ). This is possible because users use some kind of ID to name the file. If this appens, the info stored in DB is out of sync in relation to the file stored in filesystem. To correct this issues i have three possibilities: 1 - Store the PDF's in the filesystem, and store the file date, time and CRC32 of the entire file in the database. This solution has a consequence... i will need lots of space in the server( each file is aprox. 2MB ). At night a script will validate the sync between the info stored in DB and the info on filesystem. 2 - Create the PDF when requested. When the PDF generated for the first time, i will store: image creation date, time, crc32 and some more dates, times and CRC32's of other information into the DB. At night a script will validate the sync between the info stored in DB and the info on filesystem. 3 - Run a script that is change file permissions( file is created with user owner of webserver) for those new records inserted to root. A script will be run, because i cant change ownership of a file on the fly with PHP( PHP security ). Those are my solution's, if any one has any comments or suggestion's please share it with us.Thank's Miguel Carvalho -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php