diff --git a/plugins/backup-sync-dropbox/backup-sync-dropbox.zip b/plugins/backup-sync-dropbox/backup-sync-dropbox.zip index 0d821c01..afa20fbb 100644 Binary files a/plugins/backup-sync-dropbox/backup-sync-dropbox.zip and b/plugins/backup-sync-dropbox/backup-sync-dropbox.zip differ diff --git a/plugins/backup-sync-dropbox/src/src/Facade/BackupFacade.php b/plugins/backup-sync-dropbox/src/src/Facade/BackupFacade.php index 516d827f..47edccc5 100644 --- a/plugins/backup-sync-dropbox/src/src/Facade/BackupFacade.php +++ b/plugins/backup-sync-dropbox/src/src/Facade/BackupFacade.php @@ -26,10 +26,12 @@ public function upload(UnmsBackup $unmsBackup): void return; } - $temp = tmpfile(); - fwrite($temp, $this->unmsApi->get(sprintf('nms/backups/%s', $unmsBackup->id))); - - $this->filesystem->writeStream($unmsBackup->filename, $temp); + $temporaryFile = $this->getTemporaryFile(); + $resource = fopen($temporaryFile, 'wb+'); + fwrite($resource, $this->unmsApi->get(sprintf('nms/backups/%s', $unmsBackup->id))); + rewind($resource); + $this->filesystem->writeStream($unmsBackup->filename, $resource); + unlink($temporaryFile); $this->logger->info(sprintf('Uploaded file "%s".', $unmsBackup->filename)); } @@ -51,4 +53,14 @@ public function deleteExcept(array $filenames): void $this->logger->info(sprintf('Deleted file "%s".', $item['path'])); } } + + private function getTemporaryFile(): string + { + $tempDir = realpath(sys_get_temp_dir()); + assert(is_string($tempDir)); + $tmpFile = tempnam($tempDir, 'ucrmTmpFile'); + assert(is_string($tmpFile)); + + return $tmpFile; + } }