@Override
public StorageObject upload(final Path file, final Local local, final BandwidthThrottle throttle,
final StreamListener listener, final TransferStatus status, final ConnectionCallback callback) throws BackgroundException {
final S3Protocol.AuthenticationHeaderSignatureVersion signatureVersion = session.getSignatureVersion();
switch(signatureVersion) {
case AWS4HMACSHA256:
if(Checksum.NONE == status.getChecksum()) {
status.setChecksum(writer.checksum(file).compute(local.getInputStream(), status));
}
break;
}
try {
return super.upload(file, local, throttle, listener, status, callback);
}
catch(InteroperabilityException e) {
if(!session.getSignatureVersion().equals(signatureVersion)) {
return this.upload(file, local, throttle, listener, status, callback);
}
throw e;
}
}