После вызова Создание задачи и получение учётных данных для загрузки или Повторное получение учётных данных для загрузки используйте временные учётные данные из data.params, чтобы загрузить входные данные для моделирования.
- Всегда используйте загрузку частями (multipart upload).
- Порядок работы с временными учётными данными смотрите в официальной документации конкретного облачного провайдера.
- Максимальное число частей — 10 000. Для больших файлов рассчитывайте размер части исходя из общего размера, чтобы не превысить лимит.
- Итоговый Key файла — это
savePath плюс относительный путь файла. - По умолчанию временные учётные данные действуют 12 часов. После истечения срока вызовите Повторное получение учётных данных для загрузки, чтобы обновить их.
Значение data.params.cloudService в ответе определяет, какой SDK использовать. Обычно каждая интегрирующая сторона работает только с одним фиксированным облачным провайдером, поэтому поддерживать их все не нужно.
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.CredentialsProvider;
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import java.io.File;
public class Demo {
public static void main(String[] args) throws Exception {
String accessKeyId = "yourSTSAccessKeyID";
String accessKeySecret = "yourSTSAccessKeySecret";
String stsToken = "yourSecurityToken";
String endpoint = "endpoint";
String region = "region";
String bucket = "bucket";
String key = "prd/spatial-model/{accountId}/{taskCode}/input/render2/info/poses.json";
CredentialsProvider credentialsProvider =
new DefaultCredentialProvider(accessKeyId, accessKeySecret, stsToken);
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
conf.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(conf)
.region(region)
.build();
try {
PutObjectRequest req =
new PutObjectRequest(bucket, key, new File("D:\\localpath\\poses.json"));
PutObjectResult result = ossClient.putObject(req);
} catch (OSSException oe) {
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
} catch (ClientException ce) {
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) ossClient.shutdown();
}
}
}
public static void main(String[] args) throws Exception {
String accessKeyId = "yourSTSAccessKeyID";
String accessKeySecret = "yourSTSAccessKeySecret";
String securityToken = "yourSecurityToken";
String region = "region";
String bucket = "bucket";
String key = "prd/spatial-model/{accountId}/{taskCode}/input/render2/info/poses.json";
AwsSessionCredentials sessionCredentials = AwsSessionCredentials.create(
accessKeyId, accessKeySecret, securityToken);
S3Client s3Client = S3Client.builder()
.region(Region.of(region))
.credentialsProvider(StaticCredentialsProvider.create(sessionCredentials))
.build();
PutObjectRequest putObjectRequest = PutObjectRequest.builder()
.bucket(bucket)
.key(key)
.build();
s3Client.putObject(putObjectRequest, java.nio.file.Paths.get("D:\\resource\\poses.json"));
}
public Ks3Client initKs3Client() {
String accessKeyId = "yourSTSAccessKeyID";
String accessKeySecret = "yourSTSAccessKeySecret";
String securityToken = "yourSecurityToken";
String endpoint = "yourEndpoint";
String region = "region";
Ks3ClientConfig config = new Ks3ClientConfig();
config.setEndpoint(endpoint);
config.setRegion(Region.valueOf(region));
config.setProtocol(Ks3ClientConfig.PROTOCOL.http);
config.setHttpClientConfig(new HttpClientConfig());
return new Ks3Client(accessKeyId, accessKeySecret, securityToken, config);
}
Вызовите Обновление статуса загрузки со значением status = 3, иначе моделирование не начнётся.