public function upload(Space $space, $filekey, $filename) { if (!file_exists($filename)) { throw new RuntimeException("Can't upload non-existant file: " . $filename); } // First delete any previous versions $this->deleteFile($space, $filekey); $stamp = filemtime($filename); $data = file_get_contents($filename); $hash = sha1($data); $file = new File($filekey); $file->setCreatedAt($stamp); $file->setUpdatedAt($stamp); $file->setDataHash($hash); $file->setSizeOriginal(strlen($data)); $file->setSizeStorage(strlen($data)); $this->storage->setData($hash, $data); $this->persistFile($space, $file); }