Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показаны примеры кода, использующие библиотеку клиента Azure File Share версии 8 для Java.
31 марта 2023 г. мы прекратили поддержку библиотек Azure SDK, которые не соответствуют текущим рекомендациям по Azure SDK. Новые библиотеки azure SDK регулярно обновляются для обеспечения согласованного взаимодействия и укрепления системы безопасности. Рекомендуется перейти на новые библиотеки пакета SDK Azure, чтобы воспользоваться новыми возможностями и критически важными обновлениями безопасности.
Хотя старые библиотеки по-прежнему могут использоваться после 31 марта 2023 г., они больше не будут получать официальную поддержку и обновления от Корпорации Майкрософт. Дополнительные сведения см. в объявлении о завершении поддержки.
Предварительные условия
Чтобы использовать клиентскую библиотеку файлового ресурса Azure, добавьте следующие import
директивы.
// Include the following imports to use Azure Files APIs v11
import com.microsoft.azure.storage.*;
import com.microsoft.azure.storage.file.*;
Доступ к общей папке Azure
Связанная статья: Разработка с помощью Azure Files на Java
Чтобы получить доступ к учетной записи хранения, необходимо использовать объект CloudStorageAccount, передав строку подключения в метод parse.
// Use the CloudStorageAccount object to connect to your storage account
try {
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
} catch (InvalidKeyException invalidKey) {
// Handle the exception
}
CloudStorageAccount.parse генерирует исключение InvalidKeyException, поэтому его необходимо заключить в блок try-catch.
Создать общий доступ к файлу
Связанная статья: Разработка с помощью Azure Files на Java
Все файлы и каталоги в Файлах Azure сохранены в контейнере, который называется общей папкой.
Чтобы получить доступ к общей папке и ее содержимому, необходимо создать клиент Файлов Azure. В следующем примере кода показано, как создать общую папку:
// Create the Azure Files client.
CloudFileClient fileClient = storageAccount.createCloudFileClient();
С использованием клиента Azure Files, вы можете получить ссылку на файловую долю.
// Get a reference to the file share
CloudFileShare share = fileClient.getShareReference("sampleshare");
Чтобы фактически создать общую папку, используйте метод createIfNotExists объекта CloudFileShare.
if (share.createIfNotExists()) {
System.out.println("New share created");
}
На этом этапе объект share содержит ссылку на общую папку с именем sample share.
Удаление общей папки
Связанная статья: Разработка с помощью Azure Files на Java
В приведенном ниже примере кода удаляется общая папка.
Удалите общую папку, вызвав метод deleteIfExists объекта CloudFileShare.
try
{
// Retrieve storage account from connection-string.
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
// Create the file client.
CloudFileClient fileClient = storageAccount.createCloudFileClient();
// Get a reference to the file share
CloudFileShare share = fileClient.getShareReference("sampleshare");
if (share.deleteIfExists()) {
System.out.println("sampleshare deleted");
}
} catch (Exception e) {
e.printStackTrace();
}
Создание каталога
Связанная статья: Разработка с помощью Azure Files на Java
Вы можете упорядочить файлы в хранилище, разместив их в подкаталогах, чтобы не захламлять корневой каталог.
Следующий код создает подкаталог с именем sampledir в корневом каталоге:
//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
//Get a reference to the sampledir directory
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");
if (sampleDir.createIfNotExists()) {
System.out.println("sampledir created");
} else {
System.out.println("sampledir already exists");
}
Удаление каталога
Связанная статья: Разработка с помощью Azure Files на Java
В следующем примере кода показано, как удалить каталог. Невозможно удалить каталог, который содержит файлы или подкаталоги.
// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
// Get a reference to the directory you want to delete
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");
// Delete the directory
if ( containerDir.deleteIfExists() ) {
System.out.println("Directory deleted");
}
Перечисление файлов и каталогов в общей папке Azure
Связанная статья: Разработка с помощью Azure Files на Java
Получите список файлов и каталогов, вызвав listFilesAndDirectories по ссылке CloudFileDirectory. Метод возвращает список объектов ListFileItem, с которым вы можете производить дальнейшие действия.
В следующем коде перечислены файлы и каталоги в корневом каталоге:
//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
for ( ListFileItem fileItem : rootDir.listFilesAndDirectories() ) {
System.out.println(fileItem.getUri());
}
Отправка файла
Связанная статья: Разработка с помощью Azure Files на Java
Получите ссылку на каталог, куда будет отправлен файл, вызвав метод getRootDirectoryReference для объекта общей папки.
//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
Теперь, когда у вас есть ссылка на корневой каталог общей папки, вы можете отправить файл в него с помощью следующего кода:
// Define the path to a local file.
final String filePath = "C:\\temp\\Readme.txt";
CloudFile cloudFile = rootDir.getFileReference("Readme.txt");
cloudFile.uploadFromFile(filePath);
Скачивание файла
Связанная статья: Разработка с помощью Azure Files на Java
В следующем примере загружается файл SampleFile.txt и отображается его содержимое:
//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
//Get a reference to the directory that contains the file
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");
//Get a reference to the file you want to download
CloudFile file = sampleDir.getFileReference("SampleFile.txt");
//Write the contents of the file to the console.
System.out.println(file.downloadText());
Удаление файла
Связанная статья: Разработка с помощью Azure Files на Java
Следующий код удаляет файл с именем SampleFile.txt, хранящийся в каталоге с именем sampledir:
// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();
// Get a reference to the directory where the file to be deleted is in
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");
String filename = "SampleFile.txt"
CloudFile file;
file = containerDir.getFileReference(filename)
if ( file.deleteIfExists() ) {
System.out.println(filename + " was deleted");
}