backend: make SeaweedFS::Client::url_for accept a scalar too

This commit is contained in:
Lucas 2023-03-21 21:43:42 +00:00
parent 396ab297a8
commit aa3e60d188
3 changed files with 15 additions and 12 deletions

View file

@ -5,7 +5,7 @@ use warnings;
use Carp;
use List::Util qw(sample);
use Scalar::Util qw(openhandle);
use Scalar::Util qw(blessed);
use Mojo::UserAgent;
use SeaweedFS::FID;
@ -30,8 +30,18 @@ sub get
sub url_for
{
my ($self, $fid) = @_;
my ($self, $p) = @_;
my $fid;
if (defined(blessed $p) && $p->can("volume_id")) {
$fid = $p;
} elsif (!defined(blessed $p)) {
eval {
$fid = SeaweedFS::FID->from_string($p);
} or $fid = SeaweedFS::FID->from_bin($p);
} else {
croak "Unsupported FID type " . blessed($p);
}
my $vid = $fid->volume_id;
if (!defined($self->{_vurls}{$vid}) || $self->{_vurls}{$vid}->@* == 0) {