Если вы хотите скопировать большой двоичный объект из одного контейнера хранения в другой контейнер хранения, вы можете использовать метод beginCopy , сначала получить исходный URL-адрес большого двоичного объекта с помощью метода getBlobUrl , а затем передать его.
Если вы хотите образец, вы можете обратиться к этому примеру github: BlobAsyncClientBaseJavaDocCodeSnippets .
И если вы хотите переместить один большой двоичный объект из исходного контейнера в другой контейнер, и это не не существует в исходном контейнере, так как сейчас нет прямого метода для реализации, вы можете сначала скопировать большой двоичный объект, после операции копирования затем удалить исходный большой двоичный объект с помощью метода delete .
Фактически из всех эти ссылки на методы, которые вы можете найти, все они предоставляют пример github, просто следуйте структуре проекта.
Обновление : если вы хотите пример кода, вы можете обратиться к моему приведенному ниже коду, у меня есть тест это может работать.
String connectStr = "storage account connection string";
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient("test");
BlobContainerClient destcontainer=blobServiceClient.getBlobContainerClient("testcontainer");
PagedIterable<BlobItem> blobs= containerClient.listBlobs();
for (BlobItem blobItem : blobs) {
System.out.println("This is the blob name: " + blobItem.getName());
BlobClient blobClient=containerClient.getBlobClient(blobItem.getName());
BlobServiceSasSignatureValues sas = new BlobServiceSasSignatureValues(OffsetDateTime.now().plusHours(1),
BlobContainerSasPermission.parse("r"));
String sasToken = blobClient.generateSas(sas);
BlobClient destblobclient=destcontainer.getBlobClient(blobItem.getName());
destblobclient.beginCopy(blobClient.getBlobUrl()+ "?" + sasToken,null);
}
Обновление :
String connectStr = "source storage account connection string";
String destconnectStr="destination storage account connection string";
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
BlobServiceClient destblobServiceClient = new BlobServiceClientBuilder().connectionString(destconnectStr).buildClient();
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient("test");
BlobContainerClient destcontainer=destblobServiceClient.getBlobContainerClient("destcontainer");
PagedIterable<BlobItem> blobs= containerClient.listBlobs();
for (BlobItem blobItem : blobs) {
System.out.println("This is the blob name: " + blobItem.getName());
BlobClient blobClient=containerClient.getBlobClient(blobItem.getName());
BlobClient destblobclient=destcontainer.getBlobClient(blobItem.getName());
destblobclient.beginCopy(blobClient.getBlobUrl(),null);
}