mirror of
https://github.com/iterate-ch/cyberduck.git
synced 2026-05-26 19:10:49 +00:00
Allow non string parameter vlaues.
This commit is contained in:
@@ -78,7 +78,7 @@ public class B2WriteFeature extends AbstractHttpWriteFeature<BaseB2Response> imp
|
||||
try {
|
||||
final Checksum checksum = status.getChecksum();
|
||||
if(status.isSegment()) {
|
||||
final B2GetUploadPartUrlResponse uploadUrl = session.getClient().getUploadPartUrl(status.getParameters().get("fileId"));
|
||||
final B2GetUploadPartUrlResponse uploadUrl = session.getClient().getUploadPartUrl(status.getParameters().get("fileId").toString());
|
||||
return session.getClient().uploadLargeFilePart(uploadUrl, status.getPart(), entity, checksum.hash);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -185,8 +185,8 @@ public class BoxWriteFeature extends AbstractHttpWriteFeature<File> {
|
||||
final HttpRange range = HttpRange.withStatus(new TransferStatus()
|
||||
.setLength(status.getLength())
|
||||
.setOffset(status.getOffset()));
|
||||
final String uploadSessionId = status.getParameters().get(BoxLargeUploadService.UPLOAD_SESSION_ID);
|
||||
final String overall_length = status.getParameters().get(BoxLargeUploadService.OVERALL_LENGTH);
|
||||
final String uploadSessionId = status.getParameters().get(BoxLargeUploadService.UPLOAD_SESSION_ID).toString();
|
||||
final String overall_length = status.getParameters().get(BoxLargeUploadService.OVERALL_LENGTH).toString();
|
||||
log.debug("Send range {} for file {}", range, file);
|
||||
final HttpPut request = new HttpPut(String.format("%s/files/upload_sessions/%s", client.getBasePath(), uploadSessionId));
|
||||
// Must not overlap with the range of a part already uploaded this session.
|
||||
|
||||
@@ -160,7 +160,7 @@ public class TransferStatus implements TransferResponse, StreamCancelation, Stre
|
||||
private Long modified;
|
||||
private Long created;
|
||||
|
||||
private Map<String, String> parameters
|
||||
private Map<String, ?> parameters
|
||||
= Collections.emptyMap();
|
||||
|
||||
private Map<String, String> metadata
|
||||
@@ -522,11 +522,11 @@ public class TransferStatus implements TransferResponse, StreamCancelation, Stre
|
||||
return this;
|
||||
}
|
||||
|
||||
public Map<String, String> getParameters() {
|
||||
public Map<String, ?> getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public TransferStatus setParameters(final Map<String, String> parameters) {
|
||||
public TransferStatus setParameters(final Map<String, ?> parameters) {
|
||||
this.parameters = parameters;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public class EueWriteFeature extends AbstractHttpWriteFeature<EueWriteFeature.Ch
|
||||
}
|
||||
else {
|
||||
uploadUri = status.getUrl();
|
||||
resourceId = status.getParameters().get(RESOURCE_ID);
|
||||
resourceId = status.getParameters().get(RESOURCE_ID).toString();
|
||||
}
|
||||
final HttpResponseOutputStream<Chunk> stream = this.write(file, status,
|
||||
new DelayedHttpEntityCallable<Chunk>(file) {
|
||||
|
||||
@@ -52,6 +52,7 @@ import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class S3WriteFeature extends AbstractHttpWriteFeature<StorageObject> implements Write<StorageObject> {
|
||||
private static final Logger log = LogManager.getLogger(S3WriteFeature.class);
|
||||
@@ -77,7 +78,9 @@ public class S3WriteFeature extends AbstractHttpWriteFeature<StorageObject> impl
|
||||
final RequestEntityRestStorageService client = session.getClient();
|
||||
final Path bucket = containerService.getContainer(file);
|
||||
client.putObjectWithRequestEntityImpl(
|
||||
bucket.isRoot() ? StringUtils.EMPTY : bucket.getName(), object, entity, status.getParameters());
|
||||
bucket.isRoot() ? StringUtils.EMPTY : bucket.getName(), object, entity,
|
||||
status.getParameters().entrySet().stream()
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().toString())));
|
||||
log.debug("Saved object {} with checksum {}", file, object.getETag());
|
||||
}
|
||||
catch(ServiceException e) {
|
||||
|
||||
@@ -156,7 +156,7 @@ public class SpectraBulkService implements Bulk<Set<UUID>> {
|
||||
for(Map.Entry<TransferItem, TransferStatus> item : files.entrySet()) {
|
||||
if(container.getKey().equals(containerService.getContainer(item.getKey().remote))) {
|
||||
final TransferStatus status = item.getValue();
|
||||
final Map<String, String> parameters = new HashMap<>(status.getParameters());
|
||||
final Map<String, Object> parameters = new HashMap<>(status.getParameters());
|
||||
parameters.put(REQUEST_PARAMETER_JOBID_IDENTIFIER, master.getJobId().toString());
|
||||
status.setParameters(parameters);
|
||||
status.setPart(counters.get(containerService.getKey(item.getKey().remote)));
|
||||
@@ -191,7 +191,7 @@ public class SpectraBulkService implements Bulk<Set<UUID>> {
|
||||
if(!status.getParameters().containsKey(REQUEST_PARAMETER_JOBID_IDENTIFIER)) {
|
||||
throw new NotfoundException(String.format("Missing job id parameter in status for %s", file.getName()));
|
||||
}
|
||||
final String job = status.getParameters().get(REQUEST_PARAMETER_JOBID_IDENTIFIER);
|
||||
final String job = status.getParameters().get(REQUEST_PARAMETER_JOBID_IDENTIFIER).toString();
|
||||
log.debug("Cancel job {}", job);
|
||||
final Ds3Client client = new SpectraClientBuilder().wrap(session, session.getHost());
|
||||
client.cancelJobSpectraS3(new CancelJobSpectraS3Request(job));
|
||||
@@ -224,7 +224,7 @@ public class SpectraBulkService implements Bulk<Set<UUID>> {
|
||||
if(!status.getParameters().containsKey(REQUEST_PARAMETER_JOBID_IDENTIFIER)) {
|
||||
throw new NotfoundException(String.format("Missing job id parameter in status for %s", file.getName()));
|
||||
}
|
||||
final String job = status.getParameters().get(REQUEST_PARAMETER_JOBID_IDENTIFIER);
|
||||
final String job = status.getParameters().get(REQUEST_PARAMETER_JOBID_IDENTIFIER).toString();
|
||||
log.debug("Query status for job {}", job);
|
||||
// Fetch current list from server
|
||||
final Ds3Client client = new SpectraClientBuilder().wrap(session, session.getHost());
|
||||
@@ -305,7 +305,7 @@ public class SpectraBulkService implements Bulk<Set<UUID>> {
|
||||
chunk.setLength(object.getLength());
|
||||
chunk.setOffset(object.getOffset());
|
||||
// Job parameter already present from #pre
|
||||
final Map<String, String> parameters = new HashMap<>(chunk.getParameters());
|
||||
final Map<String, Object> parameters = new HashMap<>(chunk.getParameters());
|
||||
// Set offset for chunk.
|
||||
parameters.put(REQUEST_PARAMETER_OFFSET, Long.toString(chunk.getOffset()));
|
||||
chunk.setParameters(parameters);
|
||||
|
||||
@@ -34,6 +34,8 @@ import java.util.Comparator;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class SpectraReadFeature implements Read {
|
||||
|
||||
@@ -64,19 +66,20 @@ public class SpectraReadFeature implements Read {
|
||||
public InputStream open() throws IOException {
|
||||
try {
|
||||
return session.getClient().getObjectImpl(
|
||||
false,
|
||||
containerService.getContainer(file).getName(),
|
||||
containerService.getKey(file),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
file.attributes().getVersionId(),
|
||||
new HashMap<String, Object>(),
|
||||
chunk.getParameters())
|
||||
.getDataInputStream();
|
||||
false,
|
||||
containerService.getContainer(file).getName(),
|
||||
containerService.getKey(file),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
file.attributes().getVersionId(),
|
||||
new HashMap<>(),
|
||||
chunk.getParameters().entrySet().stream()
|
||||
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().toString())))
|
||||
.getDataInputStream();
|
||||
}
|
||||
catch(ServiceException e) {
|
||||
throw new IOException(e.getMessage(), e);
|
||||
|
||||
@@ -64,7 +64,7 @@ public class TusWriteFeature extends AbstractHttpWriteFeature<Void> {
|
||||
final DelayedHttpEntityCallable<Void> command = new DelayedHttpEntityCallable<Void>(file) {
|
||||
@Override
|
||||
public Void call(final HttpEntity entity) throws BackgroundException {
|
||||
final HttpPatch request = new HttpPatch(status.getParameters().get(TusUploadFeature.UPLOAD_URL));
|
||||
final HttpPatch request = new HttpPatch(status.getParameters().get(TusUploadFeature.UPLOAD_URL).toString());
|
||||
request.setEntity(entity);
|
||||
request.setHeader(TUS_HEADER_RESUMABLE, TUS_VERSION);
|
||||
final Checksum checksum = status.getChecksum();
|
||||
|
||||
@@ -117,13 +117,13 @@ public class DAVReadFeature implements Read {
|
||||
if(!status.getParameters().isEmpty()) {
|
||||
resource.append("?");
|
||||
}
|
||||
for(Map.Entry<String, String> parameter : status.getParameters().entrySet()) {
|
||||
for(Map.Entry<String, ?> parameter : status.getParameters().entrySet()) {
|
||||
if(!resource.toString().endsWith("?")) {
|
||||
resource.append("&");
|
||||
}
|
||||
resource.append(URIEncoder.encode(parameter.getKey()))
|
||||
.append("=")
|
||||
.append(URIEncoder.encode(parameter.getValue()));
|
||||
.append(URIEncoder.encode(parameter.getValue().toString()));
|
||||
|
||||
}
|
||||
return new HttpGet(resource.toString());
|
||||
|
||||
Reference in New Issue
Block a user