Skip to content

Commit f91a428

Browse files
authored
Merge pull request #11 from rok4/develop
Correction du test d'existence d'un objet S3
2 parents f504497 + 41f5709 commit f91a428

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 2.0.2
2+
3+
### [Fixed]
4+
5+
* `ProxyStorage` : le test d'existence d'un objet S3 se fait via la lecture du premier octet (le fonctionnement via préfixe n'est pas fiable).
6+
17
## 2.0.0
28

39
### [Fixed]

lib/ROK4/Core/ProxyStorage.pm

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ my $SWIFT_TOKEN = undef;
9999
### S3
100100
my $S3_HOST = undef;
101101
my $S3 = undef;
102+
my $S3CLIENT = undef;
102103

103104
####################################################################################################
104105
# Group: Controls methods #
@@ -216,6 +217,13 @@ sub checkEnvironmentVariables {
216217
aws_secret_access_key => $ENV{ROK4_S3_SECRETKEY},
217218
vendor => $S3_VENDOR
218219
);
220+
221+
$S3CLIENT = Net::Amazon::S3::Client->new (
222+
host => $S3_HOST,
223+
aws_access_key_id => $ENV{ROK4_S3_KEY},
224+
aws_secret_access_key => $ENV{ROK4_S3_SECRETKEY},
225+
vendor => $S3_VENDOR
226+
);
219227
}
220228

221229
return TRUE;
@@ -916,15 +924,10 @@ sub isPresent {
916924
return FALSE;
917925
}
918926

919-
my $result = $S3->list_bucket({
920-
bucket => $bucketName,
921-
prefix => $objectName
922-
});
927+
my $object = $S3CLIENT->bucket( name => $bucketName )->object( key => $objectName );
923928

924-
if (! defined $result) {
925-
ERROR(sprintf "Cannot request S3 storage : %s (%s)", $S3->errstr, $S3->err);
926-
return FALSE;
927-
} elsif (scalar(@{$result->{keys}} == 0)) {
929+
eval { $object->range ("bytes=0-1")->get; };
930+
if ($@) {
928931
return FALSE;
929932
} else {
930933
return TRUE;

0 commit comments

Comments
 (0)