本文整理汇总了Java中org.jclouds.blobstore.options.GetOptions类的典型用法代码示例。如果您正苦于以下问题:Java GetOptions类的具体用法?Java GetOptions怎么用?Java GetOptions使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GetOptions类属于org.jclouds.blobstore.options包,在下文中一共展示了GetOptions类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: conditionalGetSatisified
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
private Response conditionalGetSatisified(GetOptions options, String etag, Date mtime) {
if (options.getIfMatch() != null && !eTagsEqual(etag, options.getIfMatch())) {
return Response.status(Response.Status.PRECONDITION_FAILED).build();
}
if (options.getIfNoneMatch() != null && eTagsEqual(etag, options.getIfNoneMatch())) {
return Response.notModified().build();
}
if (options.getIfModifiedSince() != null && mtime.compareTo(options.getIfModifiedSince()) <= 0) {
return Response.notModified().build();
}
if (options.getIfUnmodifiedSince() != null && mtime.compareTo(options.getIfUnmodifiedSince()) > 0) {
return Response.status(Response.Status.PRECONDITION_FAILED).build();
}
return null;
}
示例2: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
@Nullable
public Blob getBlob(String container, String name, GetOptions options) {
Blob blob = super.getBlob(container, name, options);
if (blob == null) {
return null;
}
byte[] array;
try (InputStream is = blob.getPayload().openStream()) {
array = ByteStreams.toByteArray(is);
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
long length = Longs.fromByteArray(array);
ByteSourcePayload payload = new ByteSourcePayload(
new NullByteSource().slice(0, length));
payload.setContentMetadata(blob.getPayload().getContentMetadata());
payload.getContentMetadata().setContentLength(length);
payload.getContentMetadata().setContentMD5((HashCode) null);
blob.setPayload(payload);
return blob;
}
示例3: testUnbounce
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Test
public void testUnbounce() throws Exception {
String blobName = "blob";
Blob blob = UtilsTest.makeBlob(farBlobStore, blobName);
nearBlobStore.putBlob(containerName, blob);
Utils.copyBlobAndCreateBounceLink(nearBlobStore, farBlobStore,
containerName, blobName);
assertThat(nearBlobStore.blobExists(containerName, blobName)).isTrue();
assertThat(farBlobStore.blobExists(containerName, blobName)).isTrue();
Blob nearBlob = nearBlobStore.getBlob(containerName, blobName);
assertThat(BounceLink.isLink(nearBlob.getMetadata())).isTrue();
policy.getBlob(containerName, blobName, GetOptions.NONE);
assertThat(nearBlobStore.blobExists(containerName, blobName)).isTrue();
assertThat(farBlobStore.blobExists(containerName, blobName)).isTrue();
nearBlob = nearBlobStore.getBlob(containerName, blobName);
assertThat(BounceLink.isLink(nearBlob.getMetadata())).isFalse();
Blob farBlob = farBlobStore.getBlob(containerName, blobName);
UtilsTest.assertEqualBlobs(nearBlob, blob);
UtilsTest.assertEqualBlobs(farBlob, blob);
}
示例4: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public Blob getBlob(String container, String name, GetOptions options) {
GridFSIdentifier identifier = parseGridFSIdentifier(container);
if (!identifier.storeExists(mongo)) {
throw new ContainerNotFoundException(container, "could not find expected collections in database");
}
// TODO: support get options
if (options != null && (
options.getIfMatch() != null || options.getIfNoneMatch() != null ||
options.getIfModifiedSince() != null || options.getIfUnmodifiedSince() != null ||
!options.getRanges().isEmpty()
)) {
throw new IllegalArgumentException("Get options are not currently supported by this provider");
}
GridFS gridFS = identifier.connect(mongo); // TODO: cache
GridFSDBFile dbFile = gridFS.findOne(name);
if (dbFile == null) {
return null;
}
Blob blob = dbFileToBlob.apply(dbFile);
blob.getMetadata().setContainer(container);
return blob;
}
示例5: testClassKeyBuilderCreatesAKeyWithShiftedIntegerHashCodesIntoASingleLong
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Test
public void testClassKeyBuilderCreatesAKeyWithShiftedIntegerHashCodesIntoASingleLong() {
String fileAttributeValue = Long.toBinaryString(GetOptionFileAttribute.class.hashCode());
String getOptionsValue = Long.toBinaryString(GetOptions.class.hashCode());
String result = Long.toBinaryString(FileAttributeLookupMap.classKeyBuilder(GetOptionFileAttribute.class, GetOptions.class));
Assert.assertTrue(result.startsWith(fileAttributeValue));
Assert.assertTrue(result.endsWith(getOptionsValue));
//System.out.println(result);
}
示例6: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public Blob getBlob(String container, String name, GetOptions options) {
OSS oss = api.getOSSClient(OSSApi.DEFAULT_REGION);
String region = oss.getBucketLocation(container);
oss = api.getOSSClient(region);
GetObjectRequest req = new GetObjectRequest(container, name);
OSSObject object = oss.getObject(req);
String filename = object.getKey();
return blobBuilder(container)
.name(filename)
.payload(object.getObjectContent())
.build();
}
示例7: addRanges
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
private static GetOptions addRanges(GetOptions options, List<Pair<Long, Long>> ranges) {
ranges.forEach(rangeSpec -> {
if (rangeSpec.getFirst() == null) {
if (rangeSpec.getSecond() == 0) {
throw new ClientErrorException(Response.Status.REQUESTED_RANGE_NOT_SATISFIABLE);
}
options.tail(rangeSpec.getSecond());
} else if (rangeSpec.getSecond() == null) {
options.startAt(rangeSpec.getFirst());
} else {
options.range(rangeSpec.getFirst(), rangeSpec.getSecond());
}
});
return options;
}
示例8: getDloObject
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
private Response getDloObject(BlobStore blobStore, BlobMetadata meta, GetOptions options, List<Pair<Long, Long>> ranges) {
String manifest = meta.getUserMetadata().get(DYNAMIC_OBJECT_MANIFEST);
Pair<String, String> param = validateCopyParam(manifest);
String dloContainer = param.getFirst();
String objectsPrefix = param.getSecond();
List<ManifestEntry> segments = getDLOSegments(blobStore, dloContainer, objectsPrefix);
Pair<Long, String> sizeAndEtag = getManifestTotalSizeAndETag(segments);
Response cond = conditionalGetSatisified(options,
sizeAndEtag.getSecond(), meta.getLastModified());
if (cond != null) {
return cond;
}
logger.debug("getting DLO object: {}", sizeAndEtag);
InputStream combined = new ManifestObjectInputStream(blobStore, segments);
long size = sizeAndEtag.getFirst();
if (ranges != null) {
combined = new HttpRangeInputStream(combined, sizeAndEtag.getFirst(), ranges);
size = getTotalRangesLength(ranges, size);
logger.debug("range request for {} bytes", size);
}
return addObjectHeaders(Response.ok(combined), meta,
Optional.of(overwriteSizeAndETag(size, sizeAndEtag.getSecond())))
.build();
}
示例9: openNextStream
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
void openNextStream() throws IOException {
if (currentStream != null) {
currentResp.close();
currentResp = null;
currentStream = null;
availableBytes = 0;
}
if (!entries.hasNext()) {
return;
}
ManifestEntry entry = entries.next();
logger.info("opening {}/{}", entry.container, entry.object);
Response resp = getObject(blobStore, entry.container, entry.object, GetOptions.NONE, null, false);
if (!resp.getStatusInfo().getFamily().equals(Response.Status.Family.SUCCESSFUL)) {
resp.close();
throw new ClientErrorException(Response.Status.CONFLICT);
}
availableBytes = Long.parseLong(resp.getHeaderString(HttpHeaders.CONTENT_LENGTH));
currentStream = (InputStream) resp.getEntity();
currentResp = resp;
String etag = resp.getHeaderString(HttpHeaders.ETAG);
if (entry.size_bytes != availableBytes || !eTagsEqual(entry.etag, etag)) {
logger.error("409 conflict: {}/{} {} {} != {} {}",
entry.container, entry.object, entry.etag, entry.size_bytes,
etag, availableBytes);
throw new ClientErrorException(Response.Status.CONFLICT);
}
}
示例10: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public Blob getBlob(String containerName, String blobName, GetOptions options) {
Date startTime = new Date();
Blob blob = delegate().getBlob(containerName, blobName, options);
if (blob != null) {
app.getBounceStats().logOperation(HttpMethod.GET, getProviderId(), containerName, blobName,
blob.getMetadata().getSize(), startTime.getTime());
}
return blob;
}
示例11: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public Blob getBlob(String container, String blobName, GetOptions options) {
Blob blob = super.getBlob(container, blobName, options);
if (blob != null) {
updateLRU(container, blobName, blob.getMetadata().getSize());
}
return blob;
}
示例12: maybeConditionalGet
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
private GetOptions maybeConditionalGet(String container, String blobName, GetOptions options) {
if (options.getIfMatch() != null || options.getIfNoneMatch() != null ||
options.getIfModifiedSince() != null || options.getIfUnmodifiedSince() != null) {
BlobMetadata meta = blobMetadata(container, blobName);
HttpResponseException ex = null;
if (options.getIfMatch() != null && !eTagsEqual(options.getIfMatch(), meta.getETag())) {
throw new ClientErrorException(Response.Status.PRECONDITION_FAILED);
}
if (options.getIfNoneMatch() != null && eTagsEqual(options.getIfNoneMatch(), meta.getETag())) {
throw new WebApplicationException(Response.Status.NOT_MODIFIED);
}
if (options.getIfModifiedSince() != null &&
meta.getLastModified().compareTo(options.getIfModifiedSince()) <= 0) {
throw new WebApplicationException(Response.Status.NOT_MODIFIED);
}
if (options.getIfUnmodifiedSince() != null &&
meta.getLastModified().compareTo(options.getIfUnmodifiedSince()) > 0) {
throw new ClientErrorException(Response.Status.PRECONDITION_FAILED);
}
return new GetOptions() {
@Override
public List<String> getRanges() {
return options.getRanges();
}
};
}
return options;
}
示例13: getBlob
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public Blob getBlob(String container, String blobName, GetOptions options) {
for (BlobStore blobStore : getCheckedStores()) {
Blob blob = blobStore.getBlob(container, blobName, options);
if (blob != null) {
return blob;
}
}
return null;
}
示例14: BlobStoreByteSource
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
public BlobStoreByteSource(BlobStore blobStore, Blob blob, GetOptions options, long size) throws IOException {
requireNonNull(blob);
this.blobStore = requireNonNull(blobStore);
this.container = blob.getMetadata().getContainer();
this.blobName = blob.getMetadata().getName();
this.size = size;
this.options = requireNonNull(options);
this.payload = blob.getPayload();
this.isStreamRepeatable = blob.getPayload().isRepeatable();
}
示例15: slice
import org.jclouds.blobstore.options.GetOptions; //导入依赖的package包/类
@Override
public ByteSource slice(long offset, long length) {
long remaining = Math.min(size - offset, length);
GetOptions getOptions = new GetOptions().range(offset, offset + remaining - 1);
try {
return new BlobStoreByteSource(blobStore,
blobStore.getBlob(container, blobName, getOptions), getOptions, remaining);
} catch (IOException e) {
throw propagate(e);
}
}