当前位置: 首页>>代码示例>>Java>>正文


Java GetObjectRequest.getRange方法代码示例

本文整理汇总了Java中com.amazonaws.services.s3.model.GetObjectRequest.getRange方法的典型用法代码示例。如果您正苦于以下问题:Java GetObjectRequest.getRange方法的具体用法?Java GetObjectRequest.getRange怎么用?Java GetObjectRequest.getRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.amazonaws.services.s3.model.GetObjectRequest的用法示例。


在下文中一共展示了GetObjectRequest.getRange方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: adjustRequest

import com.amazonaws.services.s3.model.GetObjectRequest; //导入方法依赖的package包/类
/**
 * This method is called only if it is a resumed download.
 *
 * Adjust the range of the get request, and the expected (ie current) file
 * length of the destination file to append to.
 */
private void adjustRequest(GetObjectRequest req) {
    long[] range = req.getRange();
    long lastByte = range[1];
    long totalBytesToDownload = lastByte - this.origStartingByte + 1;

    if (dstfile.exists()) {
        if (!FileLocks.lock(dstfile)) {
            throw new FileLockException("Fail to lock " + dstfile
                    + " for range adjustment");
        }
        try {
            expectedFileLength = dstfile.length();
            long startingByte = this.origStartingByte + expectedFileLength;
            LOG.info("Adjusting request range from " + Arrays.toString(range)
                    + " to "
                    + Arrays.toString(new long[] { startingByte, lastByte })
                    + " for file " + dstfile);
            req.setRange(startingByte, lastByte);
            totalBytesToDownload = lastByte - startingByte + 1;
        } finally {
            FileLocks.unlock(dstfile);
        }
    }

    if (totalBytesToDownload < 0) {
        throw new IllegalArgumentException(
            "Unable to determine the range for download operation. lastByte="
                    + lastByte + ", origStartingByte=" + origStartingByte
                    + ", expectedFileLength=" + expectedFileLength
                    + ", totalBytesToDownload=" + totalBytesToDownload);
    }
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:39,代码来源:DownloadCallable.java

示例2: captureDownloadState

import com.amazonaws.services.s3.model.GetObjectRequest; //导入方法依赖的package包/类
/**
 * Returns the captured state of the download; or null if it should not be
 * captured (for security reason).
 */
private PersistableDownload captureDownloadState(
        final GetObjectRequest getObjectRequest, final File file) {
    if (getObjectRequest.getSSECustomerKey() == null) {
        return new PersistableDownload(
                getObjectRequest.getBucketName(), getObjectRequest.getKey(),
                getObjectRequest.getVersionId(), getObjectRequest.getRange(),
                getObjectRequest.getResponseHeaders(), getObjectRequest.isRequesterPays(),
                file.getAbsolutePath(), getLastFullyDownloadedPartNumber(),
                getObjectMetadata().getLastModified().getTime());
    }
    return null;
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:17,代码来源:DownloadImpl.java

示例3: getObjectSecurely

import com.amazonaws.services.s3.model.GetObjectRequest; //导入方法依赖的package包/类
@Override
public S3Object getObjectSecurely(GetObjectRequest req) {
    appendUserAgent(req, USER_AGENT);
    // Adjust the crypto range to retrieve all of the cipher blocks needed to contain the user's desired
    // range of bytes.
    long[] desiredRange = req.getRange();
    if (isStrict() && (desiredRange  != null || req.getPartNumber() != null))
        throw new SecurityException("Range get and getting a part are not allowed in strict crypto mode");
    long[] adjustedCryptoRange = getAdjustedCryptoRange(desiredRange);
    if (adjustedCryptoRange != null)
        req.setRange(adjustedCryptoRange[0], adjustedCryptoRange[1]);
    // Get the object from S3
    S3Object retrieved = s3.getObject(req);
    // If the caller has specified constraints, it's possible that super.getObject(...)
    // would return null, so we simply return null as well.
    if (retrieved == null)
        return null;
    String suffix = null;
    if (req instanceof EncryptedGetObjectRequest) {
        EncryptedGetObjectRequest ereq = (EncryptedGetObjectRequest)req;
        suffix = ereq.getInstructionFileSuffix();
    }
    try {
        return suffix == null || suffix.trim().isEmpty()
         ? decipher(req, desiredRange, adjustedCryptoRange, retrieved)
         : decipherWithInstFileSuffix(req,
                 desiredRange, adjustedCryptoRange, retrieved,
                 suffix)
         ;
    } catch (RuntimeException ex) {
        // If we're unable to set up the decryption, make sure we close the
        // HTTP connection
        closeQuietly(retrieved, log);
        throw ex;
    } catch (Error error) {
        closeQuietly(retrieved, log);
        throw error;
    }
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:40,代码来源:S3CryptoModuleAE.java

示例4: skipClientSideValidationPerRequest

import com.amazonaws.services.s3.model.GetObjectRequest; //导入方法依赖的package包/类
/**
 * Based on the given {@link GetObjectRequest}, returns whether the specified request should
 * skip MD5 check on the requested object content. Specifically, MD5 check should be skipped if
 * one of the following conditions are true:
 * <ol>
 * <li>The system property {@value #DISABLE_GET_OBJECT_MD5_VALIDATION_PROPERTY} is set.</li>
 * <li>The request is a range-get operation</li>
 * <li>The request is a GET object operation that involves SSE-C</li>
 * </ol>
 * Otherwise, MD5 check should not be skipped.
 */
public boolean skipClientSideValidationPerRequest(GetObjectRequest request) {
    if (isGetObjectMd5ValidationDisabledByProperty()) {
        return true;
    }
    // Skip MD5 check for range get
    if (request.getRange() != null) {
        return true;
    }
    if (request.getSSECustomerKey() != null) {
        return true;
    }
    return false;
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:25,代码来源:SkipMd5CheckStrategy.java

示例5: isDownloadParallelizable

import com.amazonaws.services.s3.model.GetObjectRequest; //导入方法依赖的package包/类
/**
 * Returns true if the specified download request can use parallel part
 * downloads for increased performance.
 *
 * @param getObjectRequest
 *            The request to check.
 *
 * @param s3
 *            The Amazon s3 client.
 *
 * @return True if this request can use parallel part downloads.
 */
public static boolean isDownloadParallelizable(final AmazonS3 s3, final GetObjectRequest getObjectRequest,
        Integer partCount) {
    ValidationUtils.assertNotNull(s3, "S3 client");
    ValidationUtils.assertNotNull(getObjectRequest, "GetObjectRequest");

    if (s3 instanceof AmazonS3Encryption || getObjectRequest.getRange() != null
            || getObjectRequest.getPartNumber() != null || partCount == null) {
        return false;
    }
    return true;
}
 
开发者ID:IBM,项目名称:ibm-cos-sdk-java,代码行数:24,代码来源:TransferManagerUtils.java


注:本文中的com.amazonaws.services.s3.model.GetObjectRequest.getRange方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。