當前位置: 首頁>>代碼示例>>Java>>正文


Java SharedAccessSignatureHelper.parseQuery方法代碼示例

本文整理匯總了Java中com.microsoft.azure.storage.core.SharedAccessSignatureHelper.parseQuery方法的典型用法代碼示例。如果您正苦於以下問題:Java SharedAccessSignatureHelper.parseQuery方法的具體用法?Java SharedAccessSignatureHelper.parseQuery怎麽用?Java SharedAccessSignatureHelper.parseQuery使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.microsoft.azure.storage.core.SharedAccessSignatureHelper的用法示例。


在下文中一共展示了SharedAccessSignatureHelper.parseQuery方法的13個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Parse URI for SAS (Shared access signature) information.
 * 
 * Validate that no other query parameters are passed in. Any SAS information will be recorded as corresponding
 * credentials instance. If existingClient is passed in, any SAS information found will not be supported. Otherwise
 * a new client is created based on SAS information or as anonymous credentials.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param existingClient
 *            A {@link CloudBlobClient} object which represents the client to use.
 * @param usePathStyleUris
 *            <code>true</code> if path-style URIs are used; otherwise, <code>false</code>.
 * @throws StorageException
 *             If a storage service error occurred.
 * @throws URISyntaxException
 *             If the resource URI is invalid.
 */
private void parseQueryAndVerify(final StorageUri completeUri, final CloudBlobClient existingClient,
        final boolean usePathStyleUris) throws URISyntaxException, StorageException {
    Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        final String errorMessage = String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString());
        throw new IllegalArgumentException(errorMessage);
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());
    final StorageCredentialsSharedAccessSignature sasCreds = SharedAccessSignatureHelper
            .parseQuery(queryParameters);

    if (sasCreds == null) {
        if (existingClient == null) {
            this.blobServiceClient = new CloudBlobClient(new URI(PathUtility.getServiceClientBaseAddress(
                    this.getUri(), usePathStyleUris)));
        }
        return;
    }

    final Boolean sameCredentials = existingClient == null ? false : Utility.areCredentialsEqual(sasCreds,
            existingClient.getCredentials());

    if (existingClient == null || !sameCredentials) {
        this.blobServiceClient = new CloudBlobClient(new URI(PathUtility.getServiceClientBaseAddress(this.getUri(),
                usePathStyleUris)), sasCreds);
    }

    if (existingClient != null && !sameCredentials) {
        this.blobServiceClient.setDefaultRequestOptions(new BlobRequestOptions(existingClient
                .getDefaultRequestOptions()));
        this.blobServiceClient.setDirectoryDelimiter(existingClient.getDirectoryDelimiter());
    }
}
 
開發者ID:horizon-institute,項目名稱:runspotrun-android-client,代碼行數:56,代碼來源:CloudBlobContainer.java

示例2: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Parse Uri for SAS (Shared access signature) information.
 *
 * Validate that no other query parameters are passed in. Any SAS information will be recorded as corresponding
 * credentials instance. If existingClient is passed in, any SAS information found will not be supported. Otherwise
 * a new client is created based on SAS information or as anonymous credentials.
 *
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param existingClient
 *            A {@link CloudTableClient} object which represents the client to use.
 * @param usePathStyleUris
 *            <code>true</code> if path-style URIs are used; otherwise <code>false</code>.
 *
 * @throws URISyntaxException
 * @throws StorageException
 */
private void parseQueryAndVerify(final StorageUri completeUri, final CloudTableClient existingClient,
        final boolean usePathStyleUris) throws URISyntaxException, StorageException {
    Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        final String errorMessage = String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString());
        throw new IllegalArgumentException(errorMessage);
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());
    final StorageCredentialsSharedAccessSignature sasCreds = SharedAccessSignatureHelper
            .parseQuery(queryParameters);

    if (sasCreds == null) {
        if (existingClient == null) {
            throw new IllegalArgumentException(SR.STORAGE_CLIENT_OR_SAS_REQUIRED);
        }
        return;
    }

    final Boolean sameCredentials = existingClient == null ? false : Utility.areCredentialsEqual(sasCreds,
            existingClient.getCredentials());

    if (existingClient == null || !sameCredentials) {
        this.tableServiceClient = new CloudTableClient(new URI(PathUtility.getServiceClientBaseAddress(
                this.getUri(), usePathStyleUris)), sasCreds);
    }

    if (existingClient != null && !sameCredentials) {
        this.tableServiceClient.setDefaultRequestOptions(new TableRequestOptions(existingClient
                .getDefaultRequestOptions()));
    }
}
 
開發者ID:horizon-institute,項目名稱:runspotrun-android-client,代碼行數:53,代碼來源:CloudTable.java

示例3: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Parse Uri for SAS (Shared access signature) information.
 * 
 * Validate that no other query parameters are passed in. Any SAS information will be recorded as corresponding
 * credentials instance. If existingClient is passed in, any SAS information found will not be supported. Otherwise
 * a new client is created based on SAS information or as anonymous credentials.
 * 
 * @param completeUri
 *            The complete Uri.
 * @param existingClient
 *            The client to use.
 * @param usePathStyleUris
 *            If true, path style Uris are used.
 * @throws URISyntaxException
 * @throws StorageException
 */
private void parseQueryAndVerify(final StorageUri completeUri, final CloudQueueClient existingClient,
        final boolean usePathStyleUris) throws URISyntaxException, StorageException {
    Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        final String errorMessage = String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString());
        throw new IllegalArgumentException(errorMessage);
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());
    final StorageCredentialsSharedAccessSignature sasCreds = SharedAccessSignatureHelper
            .parseQuery(queryParameters);

    if (sasCreds == null) {
        if (existingClient == null) {
            throw new IllegalArgumentException(SR.STORAGE_CLIENT_OR_SAS_REQUIRED);
        }
        return;
    }

    final Boolean sameCredentials = existingClient == null ? false : Utility.areCredentialsEqual(sasCreds,
            existingClient.getCredentials());

    if (existingClient == null || !sameCredentials) {
        this.queueServiceClient = new CloudQueueClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), sasCreds);
    }

    if (existingClient != null && !sameCredentials) {
        this.queueServiceClient.setDefaultRequestOptions(new QueueRequestOptions(existingClient
                .getDefaultRequestOptions()));
    }
}
 
開發者ID:horizon-institute,項目名稱:runspotrun-android-client,代碼行數:52,代碼來源:CloudQueue.java

示例4: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.blobServiceClient = new CloudBlobClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getContainerNameFromUri(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:38,代碼來源:CloudBlobContainer.java

示例5: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(BlobConstants.SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.snapshotID = snapshotIDs[0];
    }
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(queryParameters);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.blobServiceClient = new CloudBlobClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getBlobNameFromURI(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:45,代碼來源:CloudBlob.java

示例6: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 * @throws URISyntaxException 
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException, URISyntaxException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.fileServiceClient = new CloudFileClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getDirectoryNameFromURI(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(Constants.QueryConstants.SHARE_SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.getShare().snapshotID = snapshotIDs[0];
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:46,代碼來源:CloudFileDirectory.java

示例7: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(Constants.QueryConstants.SHARE_SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.snapshotID = snapshotIDs[0];
    }

    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.fileServiceClient = new CloudFileClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getShareNameFromUri(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:45,代碼來源:CloudFileShare.java

示例8: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 * @throws URISyntaxException 
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException, URISyntaxException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.fileServiceClient = new CloudFileClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getFileNameFromURI(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(Constants.QueryConstants.SHARE_SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.getShare().snapshotID = snapshotIDs[0];
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:46,代碼來源:CloudFile.java

示例9: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 */  
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials) 
        throws StorageException {
    Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.tableServiceClient = new CloudTableClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getTableNameFromUri(storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:38,代碼來源:CloudTable.java

示例10: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials) 
        throws StorageException {
    Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);
    
    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.queueServiceClient = new CloudQueueClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getContainerNameFromUri(storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-android,代碼行數:38,代碼來源:CloudQueue.java

示例11: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 * @throws URISyntaxException 
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException, URISyntaxException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.fileServiceClient = new CloudFileClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getDirectoryNameFromURI(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(Constants.QueryConstants.SHARE_SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.getShare().snapshotID = snapshotIDs[0];
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-java,代碼行數:46,代碼來源:CloudFileDirectory.java

示例12: parseQueryAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Verifies the passed in URI. Then parses it and uses its components to populate this resource's properties.
 * 
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete URI.
 * @param credentials
 *            A {@link StorageCredentials} object used to authenticate access.
 * @throws StorageException
 *             If a storage service error occurred.
 * @throws URISyntaxException 
 */
private void parseQueryAndVerify(final StorageUri completeUri, final StorageCredentials credentials)
        throws StorageException, URISyntaxException {
   Utility.assertNotNull("completeUri", completeUri);

    if (!completeUri.isAbsolute()) {
        throw new IllegalArgumentException(String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString()));
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final StorageCredentialsSharedAccessSignature parsedCredentials = 
            SharedAccessSignatureHelper.parseQuery(completeUri);

    if (credentials != null && parsedCredentials != null) {
        throw new IllegalArgumentException(SR.MULTIPLE_CREDENTIALS_PROVIDED);
    }

    try {
        final boolean usePathStyleUris = Utility.determinePathStyleFromUri(this.storageUri.getPrimaryUri());
        this.fileServiceClient = new CloudFileClient(PathUtility.getServiceClientBaseAddress(
                this.getStorageUri(), usePathStyleUris), credentials != null ? credentials : parsedCredentials);
        this.name = PathUtility.getFileNameFromURI(this.storageUri.getPrimaryUri(), usePathStyleUris);
    }
    catch (final URISyntaxException e) {
        throw Utility.generateNewUnexpectedStorageException(e);
    }

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final String[] snapshotIDs = queryParameters.get(Constants.QueryConstants.SHARE_SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.getShare().snapshotID = snapshotIDs[0];
    }
}
 
開發者ID:Azure,項目名稱:azure-storage-java,代碼行數:46,代碼來源:CloudFile.java

示例13: parseURIQueryStringAndVerify

import com.microsoft.azure.storage.core.SharedAccessSignatureHelper; //導入方法依賴的package包/類
/**
 * Parse Uri for SAS (Shared access signature) information.
 *
 * Validate that no other query parameters are passed in. Any SAS information will be recorded as corresponding
 * credentials instance. If existingClient is passed in, any SAS information found will not be supported. Otherwise
 * a new client is created based on SAS information or as anonymous credentials.
 *
 * @param completeUri
 *            A {@link StorageUri} object which represents the complete Uri.
 * @param existingClient
 *            A {@link CloudBlobClient} object which represents the client to use.
 * @param usePathStyleUris
 *            <code>true</code> if path-style URIs are used; otherwise, <code>false</code>.
 * @throws StorageException
 *             If a storage service error occurred.
 * */
protected void parseURIQueryStringAndVerify(final StorageUri completeUri, final CloudBlobClient existingClient,
        final boolean usePathStyleUris) throws StorageException {
    Utility.assertNotNull("resourceUri", completeUri);

    if (!completeUri.isAbsolute()) {
        final String errorMessage = String.format(SR.RELATIVE_ADDRESS_NOT_PERMITTED, completeUri.toString());
        throw new IllegalArgumentException(errorMessage);
    }

    this.storageUri = PathUtility.stripURIQueryAndFragment(completeUri);

    final HashMap<String, String[]> queryParameters = PathUtility.parseQueryString(completeUri.getQuery());

    final StorageCredentialsSharedAccessSignature sasCreds = SharedAccessSignatureHelper
            .parseQuery(queryParameters);

    final String[] snapshotIDs = queryParameters.get(BlobConstants.SNAPSHOT);
    if (snapshotIDs != null && snapshotIDs.length > 0) {
        this.snapshotID = snapshotIDs[0];
    }

    if (sasCreds == null && existingClient != null) {
        return;
    }

    final Boolean sameCredentials = existingClient == null ? false : Utility.areCredentialsEqual(sasCreds,
            existingClient.getCredentials());

    if (existingClient == null || !sameCredentials) {
        try {
            this.blobServiceClient = new CloudBlobClient((PathUtility.getServiceClientBaseAddress(
                    this.getStorageUri(), usePathStyleUris)), sasCreds);
        }
        catch (final URISyntaxException e) {
            throw Utility.generateNewUnexpectedStorageException(e);
        }
    }

    if (existingClient != null && !sameCredentials) {
        this.blobServiceClient.setDefaultRequestOptions(new BlobRequestOptions(existingClient
                .getDefaultRequestOptions()));
        this.blobServiceClient.setDirectoryDelimiter(existingClient.getDirectoryDelimiter());
    }
}
 
開發者ID:horizon-institute,項目名稱:runspotrun-android-client,代碼行數:61,代碼來源:CloudBlob.java


注:本文中的com.microsoft.azure.storage.core.SharedAccessSignatureHelper.parseQuery方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。