@@ -94,7 +94,8 @@ class ASFileSystem : public FileSystem {
9494 const std::string& path, const char * contents,
9595 const size_t content_len) override ;
9696 Status MakeDirectory (const std::string& dir, const bool recursive) override ;
97- Status MakeTemporaryDirectory (std::string* temp_dir) override ;
97+ Status MakeTemporaryDirectory (
98+ std::string& dir_path, std::string* temp_dir) override ;
9899 Status DeletePath (const std::string& path) override ;
99100
100101 private:
@@ -441,17 +442,20 @@ ASFileSystem::LocalizePath(
441442 " AS file localization not yet implemented " + path);
442443 }
443444
444- std::string folder_template = " /tmp/folderXXXXXX" ;
445- char * tmp_folder = mkdtemp (const_cast <char *>(folder_template.c_str ()));
446- if (tmp_folder == nullptr ) {
447- return Status (
448- Status::Code::INTERNAL,
449- " Failed to create local temp folder: " + folder_template +
450- " , errno:" + strerror (errno));
451- }
445+ // Create a local directory for azure model store.
446+ // If ENV variable are not set, creates a temporary directory
447+ // under `/tmp` with the format: "folderXXXXXX".
448+ // Otherwise, will create a folder under specified directory with the same
449+ // format.
450+ std::string env_mount_dir =
451+ GetEnvironmentVariableOrDefault (" TRITON_AZURE_MOUNT_DIRECTORY" , " /tmp" );
452+ std::string tmp_folder;
453+ RETURN_IF_ERROR (triton::core::MakeTemporaryDirectory (
454+ FileSystemType::LOCAL, std::string (env_mount_dir), &tmp_folder));
455+
452456 localized->reset (new LocalizedPath (path, tmp_folder));
453457
454- std::string dest (folder_template );
458+ std::string dest (tmp_folder );
455459
456460 std::string container, blob;
457461 RETURN_IF_ERROR (ParsePath (path, &container, &blob));
@@ -495,7 +499,8 @@ ASFileSystem::MakeDirectory(const std::string& dir, const bool recursive)
495499}
496500
497501Status
498- ASFileSystem::MakeTemporaryDirectory (std::string* temp_dir)
502+ ASFileSystem::MakeTemporaryDirectory (
503+ std::string& dir_path, std::string* temp_dir)
499504{
500505 return Status (
501506 Status::Code::UNSUPPORTED,
0 commit comments