Search in sources :

Example 41 with Region

use of com.qcloud.cos.region.Region in project cos-java-sdk-v5 by tencentyun.

the class RegionEndpointBuilderTest method testbuildGeneralApiEndpointCase1.

@Test
public void testbuildGeneralApiEndpointCase1() {
    try {
        RegionEndpointBuilder endpointBuilder = new RegionEndpointBuilder(new Region("ap-shanghai"));
        String endpoint = endpointBuilder.buildGeneralApiEndpoint("xxx-1251000");
        assertEquals("xxx-1251000.cos.ap-shanghai.myqcloud.com", endpoint);
        assertEquals("service.cos.myqcloud.com", endpointBuilder.buildGetServiceApiEndpoint());
    } catch (Exception e) {
        fail(e.toString());
    }
}
Also used : Region(com.qcloud.cos.region.Region) Test(org.junit.Test)

Example 42 with Region

use of com.qcloud.cos.region.Region in project cos-java-sdk-v5 by tencentyun.

the class COSClient method populateRequestWithCopyPartParameters.

private void populateRequestWithCopyPartParameters(CosHttpRequest<? extends CosServiceRequest> request, CopyPartRequest copyPartRequest) {
    Region sourceRegion = copyPartRequest.getSourceBucketRegion();
    EndpointBuilder srcEndpointBuilder = null;
    // 如果用户没有设置源region, 则默认和目的region一致
    if (sourceRegion == null) {
        srcEndpointBuilder = this.clientConfig.getEndpointBuilder();
    } else {
        srcEndpointBuilder = new RegionEndpointBuilder(sourceRegion);
    }
    if (copyPartRequest.getSourceEndpointBuilder() != null) {
        srcEndpointBuilder = copyPartRequest.getSourceEndpointBuilder();
    }
    String sourceKey = formatKey(copyPartRequest.getSourceKey());
    String sourceBucket = formatBucket(copyPartRequest.getSourceBucketName(), (copyPartRequest.getSourceAppid() != null) ? copyPartRequest.getSourceAppid() : fetchCredential().getCOSAppId());
    String copySourceHeader = String.format("%s%s", srcEndpointBuilder.buildGeneralApiEndpoint(sourceBucket), UrlEncoderUtils.encodeEscapeDelimiter(sourceKey));
    if (copyPartRequest.getSourceVersionId() != null) {
        copySourceHeader += "?versionId=" + copyPartRequest.getSourceVersionId();
    }
    request.addHeader("x-cos-copy-source", copySourceHeader);
    addDateHeader(request, Headers.COPY_SOURCE_IF_MODIFIED_SINCE, copyPartRequest.getModifiedSinceConstraint());
    addDateHeader(request, Headers.COPY_SOURCE_IF_UNMODIFIED_SINCE, copyPartRequest.getUnmodifiedSinceConstraint());
    addStringListHeader(request, Headers.COPY_SOURCE_IF_MATCH, copyPartRequest.getMatchingETagConstraints());
    addStringListHeader(request, Headers.COPY_SOURCE_IF_NO_MATCH, copyPartRequest.getNonmatchingETagConstraints());
    if (copyPartRequest.getFirstByte() != null && copyPartRequest.getLastByte() != null) {
        String range = "bytes=" + copyPartRequest.getFirstByte() + "-" + copyPartRequest.getLastByte();
        request.addHeader(Headers.COPY_PART_RANGE, range);
    }
    // Populate the SSE-C parameters for the source and destination object
    populateSSE_C(request, copyPartRequest.getDestinationSSECustomerKey());
    populateSourceSSE_C(request, copyPartRequest.getSourceSSECustomerKey());
}
Also used : Region(com.qcloud.cos.region.Region) RegionEndpointBuilder(com.qcloud.cos.endpoint.RegionEndpointBuilder) EndpointBuilder(com.qcloud.cos.endpoint.EndpointBuilder) CIRegionEndpointBuilder(com.qcloud.cos.endpoint.CIRegionEndpointBuilder) RegionEndpointBuilder(com.qcloud.cos.endpoint.RegionEndpointBuilder) CIRegionEndpointBuilder(com.qcloud.cos.endpoint.CIRegionEndpointBuilder)

Example 43 with Region

use of com.qcloud.cos.region.Region in project cos-java-sdk-v5 by tencentyun.

the class COSClient method populateRequestWithCopyObjectParameters.

private void populateRequestWithCopyObjectParameters(CosHttpRequest<? extends CosServiceRequest> request, CopyObjectRequest copyObjectRequest) {
    Region sourceRegion = copyObjectRequest.getSourceBucketRegion();
    EndpointBuilder srcEndpointBuilder = null;
    // 如果用户没有设置源region, 则默认和目的region一致
    if (sourceRegion == null) {
        srcEndpointBuilder = this.clientConfig.getEndpointBuilder();
    } else {
        srcEndpointBuilder = new RegionEndpointBuilder(sourceRegion);
    }
    if (copyObjectRequest.getSourceEndpointBuilder() != null) {
        srcEndpointBuilder = copyObjectRequest.getSourceEndpointBuilder();
    }
    String sourceKey = formatKey(copyObjectRequest.getSourceKey());
    String sourceBucket = formatBucket(copyObjectRequest.getSourceBucketName(), (copyObjectRequest.getSourceAppid() != null) ? copyObjectRequest.getSourceAppid() : fetchCredential().getCOSAppId());
    String copySourceHeader = String.format("%s%s", srcEndpointBuilder.buildGeneralApiEndpoint(sourceBucket), UrlEncoderUtils.encodeEscapeDelimiter(sourceKey));
    if (copyObjectRequest.getSourceVersionId() != null) {
        copySourceHeader += "?versionId=" + copyObjectRequest.getSourceVersionId();
    }
    request.addHeader("x-cos-copy-source", copySourceHeader);
    addDateHeader(request, Headers.COPY_SOURCE_IF_MODIFIED_SINCE, copyObjectRequest.getModifiedSinceConstraint());
    addDateHeader(request, Headers.COPY_SOURCE_IF_UNMODIFIED_SINCE, copyObjectRequest.getUnmodifiedSinceConstraint());
    addStringListHeader(request, Headers.COPY_SOURCE_IF_MATCH, copyObjectRequest.getMatchingETagConstraints());
    addStringListHeader(request, Headers.COPY_SOURCE_IF_NO_MATCH, copyObjectRequest.getNonmatchingETagConstraints());
    if (copyObjectRequest.getAccessControlList() != null) {
        addAclHeaders(request, copyObjectRequest.getAccessControlList());
    } else if (copyObjectRequest.getCannedAccessControlList() != null) {
        request.addHeader(Headers.COS_CANNED_ACL, copyObjectRequest.getCannedAccessControlList().toString());
    }
    if (copyObjectRequest.getStorageClass() != null) {
        request.addHeader(Headers.STORAGE_CLASS, copyObjectRequest.getStorageClass());
    }
    if (copyObjectRequest.getRedirectLocation() != null) {
        request.addHeader(Headers.REDIRECT_LOCATION, copyObjectRequest.getRedirectLocation());
    }
    ObjectMetadata newObjectMetadata = copyObjectRequest.getNewObjectMetadata();
    if (copyObjectRequest.getMetadataDirective() != null) {
        request.addHeader(Headers.METADATA_DIRECTIVE, copyObjectRequest.getMetadataDirective());
    } else if (newObjectMetadata != null) {
        request.addHeader(Headers.METADATA_DIRECTIVE, "REPLACE");
    }
    if (newObjectMetadata != null) {
        populateRequestMetadata(request, newObjectMetadata);
    }
    // Populate the SSE-C parameters for the source and destination object
    populateSSE_C(request, copyObjectRequest.getDestinationSSECustomerKey());
    populateSourceSSE_C(request, copyObjectRequest.getSourceSSECustomerKey());
    populateSSE_KMS(request, copyObjectRequest.getSSECOSKeyManagementParams());
}
Also used : Region(com.qcloud.cos.region.Region) RegionEndpointBuilder(com.qcloud.cos.endpoint.RegionEndpointBuilder) EndpointBuilder(com.qcloud.cos.endpoint.EndpointBuilder) CIRegionEndpointBuilder(com.qcloud.cos.endpoint.CIRegionEndpointBuilder) RegionEndpointBuilder(com.qcloud.cos.endpoint.RegionEndpointBuilder) CIRegionEndpointBuilder(com.qcloud.cos.endpoint.CIRegionEndpointBuilder)

Example 44 with Region

use of com.qcloud.cos.region.Region in project cos-java-sdk-v5 by tencentyun.

the class AbstractCOSClientTest method initEncryptionClient.

protected static void initEncryptionClient() {
    COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
    clientConfig = new ClientConfig(new Region(region));
    if (generalApiEndpoint != null && generalApiEndpoint.trim().length() > 0 && serviceApiEndpoint != null && serviceApiEndpoint.trim().length() > 0) {
        UserSpecifiedEndpointBuilder userSpecifiedEndpointBuilder = new UserSpecifiedEndpointBuilder(generalApiEndpoint, serviceApiEndpoint);
        clientConfig.setEndpointBuilder(userSpecifiedEndpointBuilder);
    }
    EncryptionMaterialsProvider encryptionMaterialsProvider;
    if (encryptionMaterials instanceof KMSEncryptionMaterials) {
        KMSEncryptionMaterials kmsEncryptionMaterials = new KMSEncryptionMaterials(cmk);
        encryptionMaterialsProvider = new KMSEncryptionMaterialsProvider(kmsEncryptionMaterials);
    } else {
        encryptionMaterialsProvider = new StaticEncryptionMaterialsProvider(encryptionMaterials);
    }
    cosclient = new COSEncryptionClient(qcloudkms, new COSStaticCredentialsProvider(cred), encryptionMaterialsProvider, clientConfig, cryptoConfiguration);
}
Also used : COSStaticCredentialsProvider(com.qcloud.cos.auth.COSStaticCredentialsProvider) COSCredentials(com.qcloud.cos.auth.COSCredentials) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) UserSpecifiedEndpointBuilder(com.qcloud.cos.endpoint.UserSpecifiedEndpointBuilder) BasicCOSCredentials(com.qcloud.cos.auth.BasicCOSCredentials) StaticEncryptionMaterialsProvider(com.qcloud.cos.internal.crypto.StaticEncryptionMaterialsProvider) EncryptionMaterialsProvider(com.qcloud.cos.internal.crypto.EncryptionMaterialsProvider) KMSEncryptionMaterialsProvider(com.qcloud.cos.internal.crypto.KMSEncryptionMaterialsProvider) KMSEncryptionMaterialsProvider(com.qcloud.cos.internal.crypto.KMSEncryptionMaterialsProvider) Region(com.qcloud.cos.region.Region) StaticEncryptionMaterialsProvider(com.qcloud.cos.internal.crypto.StaticEncryptionMaterialsProvider) KMSEncryptionMaterials(com.qcloud.cos.internal.crypto.KMSEncryptionMaterials)

Example 45 with Region

use of com.qcloud.cos.region.Region in project cos-java-sdk-v5 by tencentyun.

the class GetServiceTest method testGetServiceForNullRegion.

@Test
public void testGetServiceForNullRegion() {
    if (!judgeUserInfoValid()) {
        return;
    }
    Region oldRegion = clientConfig.getRegion();
    clientConfig.setRegion(null);
    try {
        List<Bucket> buckets = cosclient.listBuckets();
        for (Bucket bucketElement : buckets) {
            if (bucketElement.getName().equals(bucket)) {
                assertEquals(oldRegion.getRegionName(), bucketElement.getLocation());
                return;
            }
        }
        fail("GetService result not contain bucket: " + bucket);
    } finally {
        clientConfig.setRegion(oldRegion);
    }
}
Also used : Bucket(com.qcloud.cos.model.Bucket) Region(com.qcloud.cos.region.Region) Test(org.junit.Test)

Aggregations

Region (com.qcloud.cos.region.Region)121 COSCredentials (com.qcloud.cos.auth.COSCredentials)105 ClientConfig (com.qcloud.cos.ClientConfig)103 BasicCOSCredentials (com.qcloud.cos.auth.BasicCOSCredentials)101 COSClient (com.qcloud.cos.COSClient)99 CosClientException (com.qcloud.cos.exception.CosClientException)40 CosServiceException (com.qcloud.cos.exception.CosServiceException)38 File (java.io.File)23 ObjectMetadata (com.qcloud.cos.model.ObjectMetadata)14 PutObjectResult (com.qcloud.cos.model.PutObjectResult)14 PutObjectRequest (com.qcloud.cos.model.PutObjectRequest)13 TransferManager (com.qcloud.cos.transfer.TransferManager)13 ExecutorService (java.util.concurrent.ExecutorService)13 CopyObjectRequest (com.qcloud.cos.model.CopyObjectRequest)11 AnonymousCOSCredentials (com.qcloud.cos.auth.AnonymousCOSCredentials)8 Copy (com.qcloud.cos.transfer.Copy)8 Test (org.junit.Test)8 CopyResult (com.qcloud.cos.model.CopyResult)7 LinkedList (java.util.LinkedList)7 GetObjectRequest (com.qcloud.cos.model.GetObjectRequest)6