Android java — azure-storage-blob — blobClient.getProperties().getLastModified() — неправильное количество аргументов; о ⇐ Android
Android java — azure-storage-blob — blobClient.getProperties().getLastModified() — неправильное количество аргументов; о
Когда я пытаюсь получить дату последнего изменения Blobclient с помощью SDK хранилища BLOB-объектов Azure для Java, я получаю сообщение об ошибке «Неверное количество аргументов», в котором говорится, что ожидаемое число равно 1, хотя в документации указано, что для этого не требуется аргументы и что .getProperties имеет только необязательные аргументы.
BlobContainerClientContainerClient = новый BlobServiceClientBuilder() .connectionString(соединение) .buildClient() .getBlobContainerClient(имяконтейнера); Строка sasToken = createContainerSasToken(containerClient); BlobClient blobClient = новый BlobClientBuilder() .endpoint(конечнаяточка) .sasToken(састокен) .buildClient(); пытаться { OffsetDateTime LastModified = blobClient.getProperties().getCreationTime(); Log.i("Хранилище Azure", "Последнее изменение: " + LastModified); } catch (Исключение е) { Log.e("Хранилище Azure", "Ошибка хранилища Azure: " + e.getMessage()); } В журнале отображается следующая ошибка: «Ошибка хранилища Azure: неправильное количество аргументов; ожидалось 1, получено 0»
Я проверил, найден ли blobClient, записав его имя, и он найден, так что проблема не в этом. Я также использую последнюю версию хранилища BLOB-объектов Azure com.azure:azure-storage-blob:12.25.2.
Я также попробовал .getCreationTime(), который выдает ту же ошибку, поэтому проблема может быть в методе .getProperties.
Изменить: Я попытался добавить System.out в начале блока try, который дает результат. Кажется, что контейнер пуст, хотя в нем 4 блока blob. Уровень доступа к контейнеру является частным, но я добавил SASToken. Я попытался просто получить доступ к некоторой базовой информации о контейнере «containerClient.getBlobContainerName()» и «containerClient.getBlobContainerUrl()», который выдает одно и то же исключение: «Неверное количество аргументов; ожидалось 1, получено 0». Я могу загрузить большой двоичный объект с клиента, но не могу получить метаинформацию. Однако сегодня я попробовал тот же код и теперь получаю blobContainerName и URL-адрес, но по-прежнему ничего не получаю из цикла for, как будто контейнер пуст.
пакет com.example.azureblobstoragepropertiestest; импортировать android.app.Activity; импортировать android.os.Bundle; импортировать com.azure.storage.blob.BlobServiceClientBuilder; импортировать com.azure.storage.blob.BlobServiceClient; импортировать com.azure.storage.blob.BlobContainerClient; импортировать com.azure.storage.blob.models.BlobItem; импортировать com.azure.storage.blob.BlobClient; импортировать java.time.OffsetDateTime; публичный класс MainActivity расширяет Activity { частная статическая окончательная строка accountName = "XXXXX"; частная статическая финальная строка sasToken = "XXXXXX"; частная статическая окончательная строка имя контейнера = "XXXXX"; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); BlobServiceClientBuilder clientBuilder = новый BlobServiceClientBuilder() .endpoint("https://" + имя_аккаунта + ".blob.core.windows.net") .sasToken(sasToken); BlobServiceClient blobServiceClient = clientBuilder.buildClient(); BlobContainerClientContainerClient = blobServiceClient.getBlobContainerClient(имяконтейнера); пытаться { System.out.println("Имя контейнера: " +ContainerClient.getBlobContainerName()); System.out.println("URI контейнера: " +ContainerClient.getBlobContainerUrl()); System.out.println("Blobs в контейнере:"); for (BlobItem blobItem:ContainerClient.listBlobs()) { BlobClient blobClient =ContainerClient.getBlobClient(blobItem.getName()); OffsetDateTime LastModified = blobClient.getProperties().getLastModified(); System.out.println("Blob: " + blobItem.getName() + ", Последнее изменение: " + LastModified); } } catch (Исключение е) { System.err.println("Ошибка хранилища Azure: " + e.getMessage()); } } } Я не добавил часть загрузки, так как она связана с другим проектом, которым я не могу поделиться здесь, но код, представленный здесь, такой же, как и в этом проекте.
Когда я пытаюсь получить дату последнего изменения Blobclient с помощью SDK хранилища BLOB-объектов Azure для Java, я получаю сообщение об ошибке «Неверное количество аргументов», в котором говорится, что ожидаемое число равно 1, хотя в документации указано, что для этого не требуется аргументы и что .getProperties имеет только необязательные аргументы.
BlobContainerClientContainerClient = новый BlobServiceClientBuilder() .connectionString(соединение) .buildClient() .getBlobContainerClient(имяконтейнера); Строка sasToken = createContainerSasToken(containerClient); BlobClient blobClient = новый BlobClientBuilder() .endpoint(конечнаяточка) .sasToken(састокен) .buildClient(); пытаться { OffsetDateTime LastModified = blobClient.getProperties().getCreationTime(); Log.i("Хранилище Azure", "Последнее изменение: " + LastModified); } catch (Исключение е) { Log.e("Хранилище Azure", "Ошибка хранилища Azure: " + e.getMessage()); } В журнале отображается следующая ошибка: «Ошибка хранилища Azure: неправильное количество аргументов; ожидалось 1, получено 0»
Я проверил, найден ли blobClient, записав его имя, и он найден, так что проблема не в этом. Я также использую последнюю версию хранилища BLOB-объектов Azure com.azure:azure-storage-blob:12.25.2.
Я также попробовал .getCreationTime(), который выдает ту же ошибку, поэтому проблема может быть в методе .getProperties.
Изменить: Я попытался добавить System.out в начале блока try, который дает результат. Кажется, что контейнер пуст, хотя в нем 4 блока blob. Уровень доступа к контейнеру является частным, но я добавил SASToken. Я попытался просто получить доступ к некоторой базовой информации о контейнере «containerClient.getBlobContainerName()» и «containerClient.getBlobContainerUrl()», который выдает одно и то же исключение: «Неверное количество аргументов; ожидалось 1, получено 0». Я могу загрузить большой двоичный объект с клиента, но не могу получить метаинформацию. Однако сегодня я попробовал тот же код и теперь получаю blobContainerName и URL-адрес, но по-прежнему ничего не получаю из цикла for, как будто контейнер пуст.
пакет com.example.azureblobstoragepropertiestest; импортировать android.app.Activity; импортировать android.os.Bundle; импортировать com.azure.storage.blob.BlobServiceClientBuilder; импортировать com.azure.storage.blob.BlobServiceClient; импортировать com.azure.storage.blob.BlobContainerClient; импортировать com.azure.storage.blob.models.BlobItem; импортировать com.azure.storage.blob.BlobClient; импортировать java.time.OffsetDateTime; публичный класс MainActivity расширяет Activity { частная статическая окончательная строка accountName = "XXXXX"; частная статическая финальная строка sasToken = "XXXXXX"; частная статическая окончательная строка имя контейнера = "XXXXX"; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); BlobServiceClientBuilder clientBuilder = новый BlobServiceClientBuilder() .endpoint("https://" + имя_аккаунта + ".blob.core.windows.net") .sasToken(sasToken); BlobServiceClient blobServiceClient = clientBuilder.buildClient(); BlobContainerClientContainerClient = blobServiceClient.getBlobContainerClient(имяконтейнера); пытаться { System.out.println("Имя контейнера: " +ContainerClient.getBlobContainerName()); System.out.println("URI контейнера: " +ContainerClient.getBlobContainerUrl()); System.out.println("Blobs в контейнере:"); for (BlobItem blobItem:ContainerClient.listBlobs()) { BlobClient blobClient =ContainerClient.getBlobClient(blobItem.getName()); OffsetDateTime LastModified = blobClient.getProperties().getLastModified(); System.out.println("Blob: " + blobItem.getName() + ", Последнее изменение: " + LastModified); } } catch (Исключение е) { System.err.println("Ошибка хранилища Azure: " + e.getMessage()); } } } Я не добавил часть загрузки, так как она связана с другим проектом, которым я не могу поделиться здесь, но код, представленный здесь, такой же, как и в этом проекте.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
MissingMethodException для BlobClient.UploadAsync в Azure.Storage.Blobs SDK
Anonymous » » в форуме C# - 0 Ответы
- 74 Просмотры
-
Последнее сообщение Anonymous
-
-
-
MissingMethodException для BlobClient.UploadAsync в Azure.Storage.Blobs SDK
Anonymous » » в форуме C# - 0 Ответы
- 66 Просмотры
-
Последнее сообщение Anonymous
-