Я использую лазурное хранилище BLOB-объектов для хранения файлов проекта.
У меня есть учетная запись службы хранилища BLOB-объектов Azure (client_id и client_secret). Я создал CloudBlobClient
, используя StorageCredentialsToken
, как показано ниже:
StorageCredentialsToken credentialsToken = new StorageCredentialsToken("account name", "access token generated uing client_id and client_secret");
CloudBlobClient blobClient = new CloudBlobClient(new URI("https://accountname.blob.core.windows.net/"), credentialsToken);
CloudBlobContainer cloudBlobContainer = blobClient.getContainerReference("conteiner name");
Теперь, используя CloudBlobContainer
, я могу удалять по одному файлу за раз:
CloudBlockBlob blockBlobReference = cloudBlobContainer.getBlockBlobReference(key);
if (blockBlobReference.exists()) {
blockBlobReference.delete();
}
Как я могу удалить несколько файлов за один вызов?
Я нахожу этот документ, в котором говорится, что мы можем удалить несколько файлов с помощью BlobBatchClient
. В документе я не могу найти никаких способов создания BlobBatchClient
с использованием учетной записи службы (с использованием токена доступа, полученного с помощью client_id и client_secret).
Можем ли мы удалить файлы в асинхронном вызове, поскольку мне нужно удалить сотни файлов? Есть ли альтернативные решения для пакетного удаления файлов?
Версия SDK compile group: 'com.microsoft.azure', name: 'azure-storage', version: '8.6.5'
BlobServiceClient
с помощью учетной записи службы (StorageCredentialsToken
) ref: github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage/ - person Nitin   schedule 19.10.2020StorageSharedKeyCredential
с account_name и account_key для создания BlobServiceClient. - person Pamela Peng   schedule 19.10.2020StorageCredentialsToken
был удален. Если вы хотите использовать аутентификацию Azure AD для доступа к BLOB-объекту, нам необходимо предоставить объектTokenCredential
. Дополнительные сведения см. На странице github.com/Azure/azure-sdk. -for-java / issues / 6509 - person Jim Xu   schedule 19.10.2020StorageSharedKeyCredential
нам нужен accountKey. что здесь accountKey? Я попытался передать токен доступа, созданный с использованием client_id и client_secret, но он выдает ошибкуjava.lang.IllegalArgumentException: Illegal base64 character 2e
Он не может декодировать токен доступа - person Nitin   schedule 19.10.2020