使用Java

时间:2017-02-25 07:41:09

标签: java azure azure-storage-blobs azure-blob-storage

以下是使用

将文件上传到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?

1 个答案:

答案 0 :(得分:2)

  

我正在寻找一个API,其中给出了上传文件的文件路径   到Azure Blob商店,它可以返回该文件的属性,   具体来说,上传的日期和时间。

您正在寻找的方法是downloadAttributes(),其中返回类型为BlobProperties的对象将设置类型为{{0}的blob属性3}}。它将包含有关blob的信息。您希望在那里使用的方法是getLastModified()

但是,这将返回上次更新blob的日期/时间。因此,如果您创建一个blob并且不对其进行任何更改,则可以使用此属性来查找它何时上载。但是,如果在创建blob后对其进行任何更改(如设置属性/元数据等),则返回的值是上次更改时的日期/时间。

如果您对查找blob的创建时间感兴趣,可能需要将此信息作为自定义元数据与blob一起存储。

您可以在此处获取有关SDK的详细信息:BlobProperties