@@ -94,7 +94,7 @@ 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 (std::string dir_path, std::string * temp_dir) override ;
9898 Status DeletePath (const std::string& path) override ;
9999
100100 private:
@@ -441,17 +441,24 @@ ASFileSystem::LocalizePath(
441441 " AS file localization not yet implemented " + path);
442442 }
443443
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));
444+ // Create a local directory for azure model store.
445+ // If ENV variable are not set, creates a temporary directory
446+ // under `/tmp` with the format: "folderXXXXXX".
447+ // Otherwise, will create a folder under specified directory with the same
448+ // format.
449+ const char * env_mount_dir = std::getenv (" TRITON_AZURE_MOUNT_DIRECTORY" );
450+ std::string tmp_folder;
451+ if (env_mount_dir == nullptr ) {
452+ RETURN_IF_ERROR (triton::core::MakeTemporaryDirectory (
453+ FileSystemType::LOCAL, &tmp_folder));
454+ } else {
455+ RETURN_IF_ERROR (triton::core::MakeTemporaryDirectory (
456+ FileSystemType::LOCAL, std::string (env_mount_dir), &tmp_folder));
451457 }
458+
452459 localized->reset (new LocalizedPath (path, tmp_folder));
453460
454- std::string dest (folder_template );
461+ std::string dest (tmp_folder );
455462
456463 std::string container, blob;
457464 RETURN_IF_ERROR (ParsePath (path, &container, &blob));
@@ -495,7 +502,7 @@ ASFileSystem::MakeDirectory(const std::string& dir, const bool recursive)
495502}
496503
497504Status
498- ASFileSystem::MakeTemporaryDirectory (std::string* temp_dir)
505+ ASFileSystem::MakeTemporaryDirectory (std::string dir_path, std::string * temp_dir)
499506{
500507 return Status (
501508 Status::Code::UNSUPPORTED,
0 commit comments