Периодически требуется загрузить Disk (ISO) Image, Template, Backups и другое “по быстрому” через веб-интерфейс, но сталкиваешься с проблемой в виде:
Error 400: Parameter verification failed. content: upload content type ‘backup’ not allowed
Если окольными путями, то вариант через WinSCP или консоль, но хотелось всё таки разобраться. В итоге стало ясно, что это политика Proxmox, на её багтреках есть эта проблема и все в курсе. Поэтому пойдём другим путём (в ущерб безопасности как считает Proxmox).
Proxmox версии 3.4
Открываем для редактирования следующий скрипт: /usr/share/perl5/PVE/API2/Storage/Status.pm
Находим там следующий фрагмент:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
if ($content eq 'iso') { if ($filename !~ m![^/]+\.[Ii][Ss][Oo]$!) { raise_param_exc({ filename => "missing '.iso' extension" }); } $path = PVE::Storage::get_iso_dir($cfg, $param->{storage}); } elsif ($content eq 'vztmpl') { if ($filename !~ m![^/]+\.tar\.gz$!) { raise_param_exc({ filename => "missing '.tar.gz' extension" }); } $path = PVE::Storage::get_vztmpl_dir($cfg, $param->{storage}); } else { raise_param_exc({ content => "upload content type '$content' not allowed" }); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
if ($content eq 'iso') { if ($filename !~ m![^/]+\.[Ii][Ss][Oo]$!) { raise_param_exc({ filename => "missing '.iso' extension" }); } $path = PVE::Storage::get_iso_dir($cfg, $param->{storage}); } elsif ($content eq 'vztmpl') { if ($filename !~ m![^/]+\.tar\.gz$!) { raise_param_exc({ filename => "missing '.tar .gz' extension" }); } $path = PVE::Storage::get_vztmpl_dir($cfg, $param->{storage}); } elsif ($content eq 'backup') { if ($filename !~ m![^/]+\.vma\.lzo$!) { raise_param_exc({ filename => "missing '.vma.lzo' extension" }); } $path = PVE::Storage::get_backup_dir($cfg, $param->{storage}); } else { raise_param_exc({ content => "upload content type '$content' not allowed" }); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
if ($content eq 'iso') { if ($filename !~ m![^/]+\.[Ii][Ss][Oo]$!) { raise_param_exc({ filename => "missing '.iso' extension" }); } $path = PVE::Storage::get_iso_dir($cfg, $param->{storage}); } elsif ($content eq 'vztmpl') { if ($filename !~ m![^/]+\.tar\.gz$!) { raise_param_exc({ filename => "missing '.tar .gz' extension" }); } $path = PVE::Storage::get_vztmpl_dir($cfg, $param->{storage}); } elsif ($content eq 'backup') { $path = PVE::Storage::get_backup_dir($cfg, $param->{storage}); } else { raise_param_exc({ content => "upload content type '$content' not allowed" }); } |