本文整理汇总了Java中com.microsoft.azure.storage.blob.BlobProperties类的典型用法代码示例。如果您正苦于以下问题:Java BlobProperties类的具体用法?Java BlobProperties怎么用?Java BlobProperties使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
BlobProperties类属于com.microsoft.azure.storage.blob包,在下文中一共展示了BlobProperties类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: listBlobsByPrefix
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
@Override
public Map<String, BlobMetaData> listBlobsByPrefix(String account, LocationMode mode, String container, String keyPath, String prefix) throws URISyntaxException, StorageException {
// NOTE: this should be here: if (prefix == null) prefix = "";
// however, this is really inefficient since deleteBlobsByPrefix enumerates everything and
// then does a prefix match on the result; it should just call listBlobsByPrefix with the prefix!
logger.debug("listing container [{}], keyPath [{}], prefix [{}]", container, keyPath, prefix);
MapBuilder<String, BlobMetaData> blobsBuilder = MapBuilder.newMapBuilder();
CloudBlobClient client = this.getSelectedClient(account, mode);
CloudBlobContainer blobContainer = client.getContainerReference(container);
SocketAccess.doPrivilegedVoidException(() -> {
if (blobContainer.exists()) {
for (ListBlobItem blobItem : blobContainer.listBlobs(keyPath + (prefix == null ? "" : prefix))) {
URI uri = blobItem.getUri();
logger.trace("blob url [{}]", uri);
// uri.getPath is of the form /container/keyPath.* and we want to strip off the /container/
// this requires 1 + container.length() + 1, with each 1 corresponding to one of the /
String blobPath = uri.getPath().substring(1 + container.length() + 1);
CloudBlockBlob blob = blobContainer.getBlockBlobReference(blobPath);
// fetch the blob attributes from Azure (getBlockBlobReference does not do this)
// this is needed to retrieve the blob length (among other metadata) from Azure Storage
blob.downloadAttributes();
BlobProperties properties = blob.getProperties();
String name = blobPath.substring(keyPath.length());
logger.trace("blob url [{}], name [{}], size [{}]", uri, name, properties.getLength());
blobsBuilder.put(name, new PlainBlobMetaData(name, properties.getLength()));
}
}
});
return blobsBuilder.immutableMap();
}
示例2: getDataLength
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
/**
* Return the actual data length of the blob with the specified properties.
* If it is a page blob, you can't rely on the length from the properties
* argument and you must get it from the file. Otherwise, you can.
*/
private long getDataLength(CloudBlobWrapper blob, BlobProperties properties)
throws AzureException {
if (blob instanceof CloudPageBlobWrapper) {
try {
return PageBlobInputStream.getPageBlobSize((CloudPageBlobWrapper) blob,
getInstrumentedContext(
isConcurrentOOBAppendAllowed()));
} catch (Exception e) {
throw new AzureException(
"Unexpected exception getting page blob actual data size.", e);
}
}
return properties.getLength();
}
示例3: MockCloudBlobWrapper
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
protected MockCloudBlobWrapper(URI uri, HashMap<String, String> metadata,
int length) {
this.uri = uri;
this.metadata = metadata;
this.properties = new BlobProperties();
this.properties=updateLastModifed(this.properties);
this.properties=updateLength(this.properties,length);
}
示例4: updateLastModifed
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
protected BlobProperties updateLastModifed(BlobProperties properties){
try{
Method setLastModified =properties.getClass().
getDeclaredMethod("setLastModified", Date.class);
setLastModified.setAccessible(true);
setLastModified.invoke(this.properties,
Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime());
}catch(Exception e){
throw new RuntimeException(e);
}
return properties;
}
示例5: updateLength
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
protected BlobProperties updateLength(BlobProperties properties,int length) {
try{
Method setLength =properties.getClass().
getDeclaredMethod("setLength", long.class);
setLength.setAccessible(true);
setLength.invoke(this.properties, length);
}catch (Exception e){
throw new RuntimeException(e);
}
return properties;
}
示例6: refreshProperties
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
protected void refreshProperties(boolean getMetadata) {
if (backingStore.exists(convertUriToDecodedString(uri))) {
byte[] content = backingStore.getContent(convertUriToDecodedString(uri));
properties = new BlobProperties();
this.properties=updateLastModifed(this.properties);
this.properties=updateLength(this.properties, content.length);
if (getMetadata) {
metadata = backingStore.getMetadata(convertUriToDecodedString(uri));
}
}
}
示例7: getDataLength
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
/**
* Return the actual data length of the blob with the specified properties.
* If it is a page blob, you can't rely on the length from the properties
* argument and you must get it from the file. Otherwise, you can.
*/
private long getDataLength(CloudBlobWrapper blob, BlobProperties properties)
throws AzureException {
if (blob instanceof CloudPageBlobWrapper) {
try {
return PageBlobInputStream.getPageBlobDataSize((CloudPageBlobWrapper) blob,
getInstrumentedContext(
isConcurrentOOBAppendAllowed()));
} catch (Exception e) {
throw new AzureException(
"Unexpected exception getting page blob actual data size.", e);
}
}
return properties.getLength();
}
示例8: createFromAzureListBlobItem
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
/**
* Contructs a StorageObjectSummary object from Azure BLOB properties
* Using factory methods to create these objects since Azure can throw,
* while retrieving the BLOB properties
* @param listBlobItem an Azure ListBlobItem object
* @return the ObjectSummary object created
*/
public static StorageObjectSummary createFromAzureListBlobItem(ListBlobItem listBlobItem)
throws StorageProviderException
{
String location, key, md5;
long size;
// Retrieve the BLOB properties that we need for the Summary
// Azure Storage stores metadata inside each BLOB, therefore the listBlobItem
// will point us to the underlying BLOB and will get the properties from it
// During the process the Storage Client could fail, hence we need to wrap the
// get calls in try/catch and handle possible exceptions
try
{
location = listBlobItem.getContainer().getName();
CloudBlob cloudBlob = (CloudBlob) listBlobItem;
key = cloudBlob.getName();
BlobProperties blobProperties = cloudBlob.getProperties();
// the content md5 property is not always the actual md5 of the file. But for here, it's only
// used for skipping file on PUT command, hense is ok.
md5 = convertBase64ToHex(blobProperties.getContentMD5());
size = blobProperties.getLength();
}
catch (URISyntaxException | StorageException ex)
{
// This should only happen if somehow we got here with and invalid URI (it should never happen)
// ...or there is a Storage service error. Unlike S3, Azure fetches metadata from the BLOB itself,
// and its a lazy operation
throw new StorageProviderException(ex);
}
return new StorageObjectSummary(location, key, md5, size);
}
示例9: getConfigBlobProperties
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
private BlobProperties getConfigBlobProperties() throws Exception {
try {
BlobProperties properties = azureClient.getBlobProperties(arguments.getContainer(), arguments.getBlobName());
if (properties.getLength() > 0) {
return properties;
}
} catch (StorageException e) {
if (!isNotFoundError(e) && !isForbiddenError(e)) {
throw e;
}
}
return null;
}
示例10: getProperties
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
@Override
public BlobProperties getProperties() {
return getBlob().getProperties();
}
示例11: getProperties
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
@Override
public BlobProperties getProperties() {
return properties;
}
示例12: doCloudBlobCopy
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
private CloudFile doCloudBlobCopy(CloudBlob source, int length) throws Exception {
Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
cal.setTime(new Date());
cal.add(Calendar.MINUTE, 5);
// Source SAS must have read permissions
SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy();
policy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ));
policy.setSharedAccessExpiryTime(cal.getTime());
String sasToken = source.generateSharedAccessSignature(policy, null, null);
// Get destination reference
final CloudFile destination = this.share.getRootDirectoryReference().getFileReference("destination");
// Start copy and wait for completion
StorageCredentialsSharedAccessSignature credentials = new StorageCredentialsSharedAccessSignature(sasToken);
Constructor<? extends CloudBlob> blobType = source.getClass().getConstructor(URI.class);
String copyId = destination.startCopy(blobType.newInstance(credentials.transformUri(source.getUri())));
FileTestHelper.waitForCopy(destination);
destination.downloadAttributes();
// Check original file references for equality
assertEquals(CopyStatus.SUCCESS, destination.getCopyState().getStatus());
assertEquals(source.getServiceClient().getCredentials().transformUri(source.getUri()).getPath(),
destination.getCopyState().getSource().getPath());
assertEquals(length, destination.getCopyState().getTotalBytes().intValue());
assertEquals(length, destination.getCopyState().getBytesCopied().intValue());
assertEquals(copyId, destination.getProperties().getCopyState().getCopyId());
// Attempt to abort the completed copy operation.
try {
destination.abortCopy(destination.getCopyState().getCopyId());
FileTestHelper.waitForCopy(destination);
fail();
}
catch (StorageException ex) {
assertEquals(HttpURLConnection.HTTP_CONFLICT, ex.getHttpStatusCode());
}
assertNotNull(destination.getProperties().getEtag());
assertFalse(source.getProperties().getEtag().equals(destination.getProperties().getEtag()));
source.downloadAttributes();
FileProperties prop1 = destination.getProperties();
BlobProperties prop2 = source.getProperties();
assertEquals(prop1.getCacheControl(), prop2.getCacheControl());
assertEquals(prop1.getContentEncoding(), prop2.getContentEncoding());
assertEquals(prop1.getContentLanguage(), prop2.getContentLanguage());
assertEquals(prop1.getContentMD5(), prop2.getContentMD5());
assertEquals(prop1.getContentType(), prop2.getContentType());
assertEquals("value", destination.getMetadata().get("Test"));
return destination;
}
示例13: testFileCopyFromBlobWithSasAndSnapshot
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
@Test
public void testFileCopyFromBlobWithSasAndSnapshot()
throws URISyntaxException, StorageException, InterruptedException, IOException, InvalidKeyException {
String blobName = BlobTestHelper.generateRandomBlobNameWithPrefix("testblob");
CloudBlobContainer container = TestHelper.createCloudBlobClient().getContainerReference(BlobTestHelper.generateRandomContainerName());
container.createIfNotExists();
CloudBlockBlob source = container.getBlockBlobReference(blobName);
String data = "String data";
source.uploadText(data, Constants.UTF8_CHARSET, null, null, null);
byte[] buffer = BlobTestHelper.getRandomBuffer(512);
ByteArrayInputStream stream = new ByteArrayInputStream(buffer);
source.upload(stream, buffer.length);
source.getMetadata().put("Test", "value");
source.uploadMetadata();
SharedAccessFilePolicy policy = createSharedAccessPolicy(
EnumSet.of(SharedAccessFilePermissions.READ, SharedAccessFilePermissions.WRITE,
SharedAccessFilePermissions.LIST, SharedAccessFilePermissions.DELETE), 5000);
CloudFile copy = this.share.getRootDirectoryReference().getFileReference("copy");
String sasToken = copy.generateSharedAccessSignature(policy, null);
CloudFile copySas = new CloudFile(new URI(copy.getUri().toString() + "?" + sasToken));
// Generate account SAS for the source
// Cannot generate a SAS directly on a snapshot and the SAS for the destination is only for the destination
SharedAccessAccountPolicy accountPolicy = new SharedAccessAccountPolicy();
accountPolicy.setPermissions(EnumSet.of(SharedAccessAccountPermissions.READ, SharedAccessAccountPermissions.WRITE));
accountPolicy.setServices(EnumSet.of(SharedAccessAccountService.BLOB));
accountPolicy.setResourceTypes(EnumSet.of(SharedAccessAccountResourceType.OBJECT, SharedAccessAccountResourceType.CONTAINER));
accountPolicy.setSharedAccessExpiryTime(policy.getSharedAccessExpiryTime());
final CloudBlobClient sasClient = TestHelper.createCloudBlobClient(accountPolicy, false);
CloudBlockBlob snapshot = (CloudBlockBlob) source.createSnapshot();
CloudBlockBlob sasBlob = (CloudBlockBlob) sasClient.getContainerReference(container.getName())
.getBlobReferenceFromServer(snapshot.getName(), snapshot.getSnapshotID(), null, null, null);
sasBlob.exists();
String copyId = copySas.startCopy(BlobTestHelper.defiddler(sasBlob));
FileTestHelper.waitForCopy(copySas);
copySas.downloadAttributes();
FileProperties prop1 = copySas.getProperties();
BlobProperties prop2 = sasBlob.getProperties();
assertEquals(prop1.getCacheControl(), prop2.getCacheControl());
assertEquals(prop1.getContentEncoding(), prop2.getContentEncoding());
assertEquals(prop1.getContentDisposition(),
prop2.getContentDisposition());
assertEquals(prop1.getContentLanguage(), prop2.getContentLanguage());
assertEquals(prop1.getContentMD5(), prop2.getContentMD5());
assertEquals(prop1.getContentType(), prop2.getContentType());
assertEquals("value", copySas.getMetadata().get("Test"));
assertEquals(copyId, copySas.getCopyState().getCopyId());
snapshot.delete();
source.delete();
copySas.delete();
container.delete();
}
示例14: getObjectMetadata
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
private BlobProperties getObjectMetadata(CloudBlob object) {
BlobProperties metadata = null;
if (object != null) {
metadata = object.getProperties();
}
return metadata;
}
示例15: getProperties
import com.microsoft.azure.storage.blob.BlobProperties; //导入依赖的package包/类
/**
* Returns the blob's properties.
*
* @return A {@link BlobProperties} object that represents the properties of
* the blob.
*/
BlobProperties getProperties();