Find Jobs
Hire Freelancers

Blobs:BlobMerger(repost)

$30-60 USD

Σε Εξέλιξη
Αναρτήθηκε πάνω από 13 χρόνια πριν

$30-60 USD

Πληρωμή κατά την παράδοση
We need a Linux comandline program, which combines several S3 objects into one. ## Deliverables # BlobMerger ## Technologies used It is a Linux shell application, which works with TCP sockets and HTTP protocol. Application has just one thread. **Multiplexing** socket handle mode is expected. ## Description Application receives merge tasks through STDIN. Task will contain *signed* urls on the file parts, and *signed* POST request parameters, required to create new S3 file. File combining should be done **without** file buffer in the local filesystem. In-memory buffer should be used, with size of 4 Kb or more. The exact buffer size to use is set in the config file. Combining is a simultaneous reading one file part and writing the result file. ## Specification Application reads data from STDIN in the following format: **ACTION <session_id|QUIT>** (message **ACTION QUIT** shuts down the application) **DESTURL** **DESTPARAMCOUNT** (sequence of exact *DESTPARAMCOUNT* params) **DESTPRAM <name=value>** **DESTPRAM <name=value>** **DESTPRAM <name=value>** **…** **SOURCECOUNT** (sequence of exact *SOURCECOUNT* SOURCE entities) **SOURCE <????? ? s3>** **SOURCE <????? ? s3>** **SOURCE <????? ? s3>** **…** Once all message is recieved, application writes to the STDOUT message **WAIT** Message handling is started. Once task is completed, application writes to the STDOUT message **DONE ** After that application is waiting for the next task. Or **ERROR** ??" if error happened and application is going to exit with error. Error description should contain all required information and be human-readable. ## Implementation * Application should use select() with two filehandles : GETHANDLE and PUTHANDLE ??" one for reading, another one for writing. * Application should write into the logfile all commands, that were recieved on STDIN and wrote on STDOUT, replacing value of Signature with asterixes everywhere. * In case of connection for read file part is failed, application should retry three more times, if still no success, then application should exit with error. * In case od connection for write result file is failed, application should exit with error. * While interactiong with S3, application should check HTTP Statuses of the S3 responses and exit with error, once status is unexpected. * Exiting with error: Application should write error to the logfile first. If the last command written to STDOUT was WAIT, than error message should be written to the STDOUT. * Log file entries should have the following format: **YYYY-MM-DD HH:MM PID sessionId message** * Application should write two log files simultaneously: [login to view URL] and blob_merger_session_id.log. If application finishes its work on current session successfully and there were no errors during the session, than [login to view URL] should be deleted. * Application should read config text file, where buffer size and log files directory path are defined. Config file should be at ~/.blob_merger
Ταυτότητα εργασίας: 3616505

Σχετικά με την εργασία

Απομακρυσμένη Εργασία
Ενεργός/ή 14 χρόνια πριν

Ψάχνεις τρόπο για να κερδίσεις μερικά χρήματα;

Πλεονεκτήματα πλειοδοσίας στο Freelancer

Καθόρισε τον προϋπολογισμό σου και το χρονοδιάγραμμα
Πληρώσου για τη δουλειά σου
Περίγραψε την πρόταση σου
Η εγγραφή και η πλειοδοσία σε εργασίες είναι δωρεάν

Σχετικά με τον πελάτη

Σημαία της RUSSIAN FEDERATION
Bonn, Russian Federation
5,0
11
Μέλος από Φεβ 1, 2009

Επαλήθευση Πελάτη

Ευχαριστούμε! Σου έχουμε στείλει ένα email με ένα σύνδεσμο για να διεκδικήσεις τη δωρεάν πίστωση σου.
Κάτι πήγε στραβά κατά την προσπάθεια αποστολής του email σου. Παρακαλούμε δοκίμασε ξανά.
Εγγεγραμμένοι Χρήστες Συνολικές Αναρτημένες Δουλειές
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Φόρτωση προεπισκόπησης
Δόθηκε πρόσβαση για Geolocation.
Η σύνδεση σου έχει λήξει και τώρα έχεις αποσυνδεθεί. Παρακαλούμε συνδέσου ξανά.