mirror of
https://github.com/vitodeploy/vito.git
synced 2025-04-20 10:21:37 +00:00
* Allow editing of backups * pint updates * setup of backup download * allow download for local backup files * delete uploaded files on delete of BackupFile * pint updates * S3 upload & download fixes * Deletion of backup files * support $ARCH selector for s3 installation * delete files when deleting backup * fixed ui issue * adjustment * Use system temp path for downloads --------- Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\SSH\Storage;
|
|
|
|
use App\Exceptions\SSHCommandError;
|
|
use App\SSH\HasScripts;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class Dropbox extends AbstractStorage
|
|
{
|
|
use HasScripts;
|
|
|
|
public function upload(string $src, string $dest): array
|
|
{
|
|
$upload = $this->server->ssh()->exec(
|
|
$this->getScript('dropbox/upload.sh', [
|
|
'src' => $src,
|
|
'dest' => $dest,
|
|
'token' => $this->storageProvider->credentials['token'],
|
|
]),
|
|
'upload-to-dropbox'
|
|
);
|
|
|
|
$data = json_decode($upload, true);
|
|
|
|
if (isset($data['error'])) {
|
|
Log::error('Failed to upload to Dropbox', $data);
|
|
throw new SSHCommandError('Failed to upload to Dropbox');
|
|
}
|
|
|
|
return [
|
|
'size' => $data['size'] ?? null,
|
|
];
|
|
}
|
|
|
|
public function download(string $src, string $dest): void
|
|
{
|
|
$this->server->ssh()->exec(
|
|
$this->getScript('dropbox/download.sh', [
|
|
'src' => $src,
|
|
'dest' => $dest,
|
|
'token' => $this->storageProvider->credentials['token'],
|
|
]),
|
|
'download-from-dropbox'
|
|
);
|
|
}
|
|
|
|
public function delete(string $src): void
|
|
{
|
|
$this->server->ssh()->exec(
|
|
$this->getScript('dropbox/delete-file.sh', [
|
|
'src' => $src,
|
|
'token' => $this->storageProvider->credentials['token'],
|
|
]),
|
|
'delete-from-dropbox'
|
|
);
|
|
}
|
|
}
|