以下是使用
将文件上传到Azure Blob商店的代码com.microsoft.azure.storage
文库
public class BlobUploader {
private CloudBlobContainer blobContainer;
private static Logger LOGGER = LoggerFactory.getLogger(BlobUploader.class);
/**
* Constructor of the BlobUploader
*
* @param storageAccountName The storage account name where the files will be uploaded to.
* @param storageAccountKey The storage account key of the storage account
* @param containerName The container name where the files will be uploaded to.
*/
public BlobUploader( String storageAccountName, String storageAccountKey, String containerName ) {
String storageConnectionString = "DefaultEndpointsProtocol=http;AccountName=" + storageAccountName + ";AccountKey=" + storageAccountKey;
CloudStorageAccount storageAccount;
try {
storageAccount = CloudStorageAccount.parse( storageConnectionString );
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
// Retrieve reference to a previously created container.
this.blobContainer = blobClient.getContainerReference( containerName );
} catch ( Exception e ) {
LOGGER.error( "failed to construct blobUploader", e );
}
}
public void upload( String filePath ) throws Exception {
// Define the path to blob in the container
String blobPath = "/uploads";
File fileToBeUploaded = new File( filePath );
String fileName = fileToBeUploaded.getName();
String blobName = blobPath + fileName;
// Create or overwrite the blob with contents from a local file.
CloudBlockBlob blob = blobContainer.getBlockBlobReference( blobName );
System.out.println( "start uploading file " + filePath + " to blob " + blobName );
blob.upload( new FileInputStream( fileToBeUploaded ), fileToBeUploaded.length() );
System.out.println( "upload succeeded." );
}
}
我正在寻找一个API,在给定上传到Azure Blob商店的文件的文件路径的情况下,它可以返回该文件的属性,特别是上传的日期和时间。
Java中是否有支持此功能的API?
答案 0 :(得分:2)
我正在寻找一个API,其中给出了上传文件的文件路径 到Azure Blob商店,它可以返回该文件的属性, 具体来说,上传的日期和时间。
您正在寻找的方法是downloadAttributes()
,其中返回类型为将设置类型为{{0}的blob属性3}}。它将包含有关blob的信息。您希望在那里使用的方法是BlobProperties
的对象getLastModified()
。
但是,这将返回上次更新blob的日期/时间。因此,如果您创建一个blob并且不对其进行任何更改,则可以使用此属性来查找它何时上载。但是,如果在创建blob后对其进行任何更改(如设置属性/元数据等),则返回的值是上次更改时的日期/时间。
如果您对查找blob的创建时间感兴趣,可能需要将此信息作为自定义元数据与blob一起存储。
您可以在此处获取有关SDK的详细信息:BlobProperties
。