We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Timeout value too small: when downloading large model files, timeout is reached
https://github.com/mlflow/mlflow/blob/d40780be361f4bd2741c2e8fcbd428c1d693edcf/mlflow/store/artifact/http_artifact_repo.py#L63

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `mlflow/store/artifact/http_artifact_repo.py`
Content:
```
1 import os
2 import posixpath
3 
4 from mlflow.entities import FileInfo
5 from mlflow.store.artifact.artifact_repo import ArtifactRepository, verify_artifact_path
6 from mlflow.tracking._tracking_service.utils import _get_default_host_creds
7 from mlflow.utils.file_utils import relative_path_to_artifact_path
8 from mlflow.utils.rest_utils import augmented_raise_for_status, http_request
9 
10 
11 class HttpArtifactRepository(ArtifactRepository):
12     """Stores artifacts in a remote artifact storage using HTTP requests"""
13 
14     @property
15     def _host_creds(self):
16         return _get_default_host_creds(self.artifact_uri)
17 
18     def log_artifact(self, local_file, artifact_path=None):
19         verify_artifact_path(artifact_path)
20 
21         file_name = os.path.basename(local_file)
22         paths = (artifact_path, file_name) if artifact_path else (file_name,)
23         endpoint = posixpath.join("/", *paths)
24         with open(local_file, "rb") as f:
25             resp = http_request(self._host_creds, endpoint, "PUT", data=f, timeout=600)
26             augmented_raise_for_status(resp)
27 
28     def log_artifacts(self, local_dir, artifact_path=None):
29         local_dir = os.path.abspath(local_dir)
30         for root, _, filenames in os.walk(local_dir):
31             if root == local_dir:
32                 artifact_dir = artifact_path
33             else:
34                 rel_path = os.path.relpath(root, local_dir)
35                 rel_path = relative_path_to_artifact_path(rel_path)
36                 artifact_dir = (
37                     posixpath.join(artifact_path, rel_path) if artifact_path else rel_path
38                 )
39             for f in filenames:
40                 self.log_artifact(os.path.join(root, f), artifact_dir)
41 
42     def list_artifacts(self, path=None):
43         endpoint = "/mlflow-artifacts/artifacts"
44         url, tail = self.artifact_uri.split(endpoint, maxsplit=1)
45         root = tail.lstrip("/")
46         params = {"path": posixpath.join(root, path) if path else root}
47         host_creds = _get_default_host_creds(url)
48         resp = http_request(host_creds, endpoint, "GET", params=params, timeout=10)
49         augmented_raise_for_status(resp)
50         file_infos = []
51         for f in resp.json().get("files", []):
52             file_info = FileInfo(
53                 posixpath.join(path, f["path"]) if path else f["path"],
54                 f["is_dir"],
55                 int(f["file_size"]) if ("file_size" in f) else None,
56             )
57             file_infos.append(file_info)
58 
59         return sorted(file_infos, key=lambda f: f.path)
60 
61     def _download_file(self, remote_file_path, local_path):
62         endpoint = posixpath.join("/", remote_file_path)
63         resp = http_request(self._host_creds, endpoint, "GET", stream=True, timeout=10)
64         augmented_raise_for_status(resp)
65         with open(local_path, "wb") as f:
66             chunk_size = 1024 * 1024  # 1 MB
67             for chunk in resp.iter_content(chunk_size=chunk_size):
68                 f.write(chunk)
69 
70     def delete_artifacts(self, artifact_path=None):
71         endpoint = posixpath.join("/", artifact_path) if artifact_path else "/"
72         resp = http_request(self._host_creds, endpoint, "DELETE", stream=True, timeout=10)
73         augmented_raise_for_status(resp)
74
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/mlflow/store/artifact/http_artifact_repo.py b/mlflow/store/artifact/http_artifact_repo.py
--- a/mlflow/store/artifact/http_artifact_repo.py
+++ b/mlflow/store/artifact/http_artifact_repo.py
@@ -22,7 +22,7 @@
         paths = (artifact_path, file_name) if artifact_path else (file_name,)
         endpoint = posixpath.join("/", *paths)
         with open(local_file, "rb") as f:
-            resp = http_request(self._host_creds, endpoint, "PUT", data=f, timeout=600)
+            resp = http_request(self._host_creds, endpoint, "PUT", data=f)
             augmented_raise_for_status(resp)
 
     def log_artifacts(self, local_dir, artifact_path=None):
@@ -45,7 +45,7 @@
         root = tail.lstrip("/")
         params = {"path": posixpath.join(root, path) if path else root}
         host_creds = _get_default_host_creds(url)
-        resp = http_request(host_creds, endpoint, "GET", params=params, timeout=10)
+        resp = http_request(host_creds, endpoint, "GET", params=params)
         augmented_raise_for_status(resp)
         file_infos = []
         for f in resp.json().get("files", []):
@@ -60,7 +60,7 @@
 
     def _download_file(self, remote_file_path, local_path):
         endpoint = posixpath.join("/", remote_file_path)
-        resp = http_request(self._host_creds, endpoint, "GET", stream=True, timeout=10)
+        resp = http_request(self._host_creds, endpoint, "GET", stream=True)
         augmented_raise_for_status(resp)
         with open(local_path, "wb") as f:
             chunk_size = 1024 * 1024  # 1 MB
@@ -69,5 +69,5 @@
 
     def delete_artifacts(self, artifact_path=None):
         endpoint = posixpath.join("/", artifact_path) if artifact_path else "/"
-        resp = http_request(self._host_creds, endpoint, "DELETE", stream=True, timeout=10)
+        resp = http_request(self._host_creds, endpoint, "DELETE", stream=True)
         augmented_raise_for_status(resp)

{"golden_diff": "diff --git a/mlflow/store/artifact/http_artifact_repo.py b/mlflow/store/artifact/http_artifact_repo.py\n--- a/mlflow/store/artifact/http_artifact_repo.py\n+++ b/mlflow/store/artifact/http_artifact_repo.py\n@@ -22,7 +22,7 @@\n         paths = (artifact_path, file_name) if artifact_path else (file_name,)\n         endpoint = posixpath.join(\"/\", *paths)\n         with open(local_file, \"rb\") as f:\n-            resp = http_request(self._host_creds, endpoint, \"PUT\", data=f, timeout=600)\n+            resp = http_request(self._host_creds, endpoint, \"PUT\", data=f)\n             augmented_raise_for_status(resp)\n \n     def log_artifacts(self, local_dir, artifact_path=None):\n@@ -45,7 +45,7 @@\n         root = tail.lstrip(\"/\")\n         params = {\"path\": posixpath.join(root, path) if path else root}\n         host_creds = _get_default_host_creds(url)\n-        resp = http_request(host_creds, endpoint, \"GET\", params=params, timeout=10)\n+        resp = http_request(host_creds, endpoint, \"GET\", params=params)\n         augmented_raise_for_status(resp)\n         file_infos = []\n         for f in resp.json().get(\"files\", []):\n@@ -60,7 +60,7 @@\n \n     def _download_file(self, remote_file_path, local_path):\n         endpoint = posixpath.join(\"/\", remote_file_path)\n-        resp = http_request(self._host_creds, endpoint, \"GET\", stream=True, timeout=10)\n+        resp = http_request(self._host_creds, endpoint, \"GET\", stream=True)\n         augmented_raise_for_status(resp)\n         with open(local_path, \"wb\") as f:\n             chunk_size = 1024 * 1024  # 1 MB\n@@ -69,5 +69,5 @@\n \n     def delete_artifacts(self, artifact_path=None):\n         endpoint = posixpath.join(\"/\", artifact_path) if artifact_path else \"/\"\n-        resp = http_request(self._host_creds, endpoint, \"DELETE\", stream=True, timeout=10)\n+        resp = http_request(self._host_creds, endpoint, \"DELETE\", stream=True)\n         augmented_raise_for_status(resp)\n", "issue": "Timeout value too small: when downloading large model files, timeout is reached\nhttps://github.com/mlflow/mlflow/blob/d40780be361f4bd2741c2e8fcbd428c1d693edcf/mlflow/store/artifact/http_artifact_repo.py#L63\n", "before_files": [{"content": "import os\nimport posixpath\n\nfrom mlflow.entities import FileInfo\nfrom mlflow.store.artifact.artifact_repo import ArtifactRepository, verify_artifact_path\nfrom mlflow.tracking._tracking_service.utils import _get_default_host_creds\nfrom mlflow.utils.file_utils import relative_path_to_artifact_path\nfrom mlflow.utils.rest_utils import augmented_raise_for_status, http_request\n\n\nclass HttpArtifactRepository(ArtifactRepository):\n    \"\"\"Stores artifacts in a remote artifact storage using HTTP requests\"\"\"\n\n    @property\n    def _host_creds(self):\n        return _get_default_host_creds(self.artifact_uri)\n\n    def log_artifact(self, local_file, artifact_path=None):\n        verify_artifact_path(artifact_path)\n\n        file_name = os.path.basename(local_file)\n        paths = (artifact_path, file_name) if artifact_path else (file_name,)\n        endpoint = posixpath.join(\"/\", *paths)\n        with open(local_file, \"rb\") as f:\n            resp = http_request(self._host_creds, endpoint, \"PUT\", data=f, timeout=600)\n            augmented_raise_for_status(resp)\n\n    def log_artifacts(self, local_dir, artifact_path=None):\n        local_dir = os.path.abspath(local_dir)\n        for root, _, filenames in os.walk(local_dir):\n            if root == local_dir:\n                artifact_dir = artifact_path\n            else:\n                rel_path = os.path.relpath(root, local_dir)\n                rel_path = relative_path_to_artifact_path(rel_path)\n                artifact_dir = (\n                    posixpath.join(artifact_path, rel_path) if artifact_path else rel_path\n                )\n            for f in filenames:\n                self.log_artifact(os.path.join(root, f), artifact_dir)\n\n    def list_artifacts(self, path=None):\n        endpoint = \"/mlflow-artifacts/artifacts\"\n        url, tail = self.artifact_uri.split(endpoint, maxsplit=1)\n        root = tail.lstrip(\"/\")\n        params = {\"path\": posixpath.join(root, path) if path else root}\n        host_creds = _get_default_host_creds(url)\n        resp = http_request(host_creds, endpoint, \"GET\", params=params, timeout=10)\n        augmented_raise_for_status(resp)\n        file_infos = []\n        for f in resp.json().get(\"files\", []):\n            file_info = FileInfo(\n                posixpath.join(path, f[\"path\"]) if path else f[\"path\"],\n                f[\"is_dir\"],\n                int(f[\"file_size\"]) if (\"file_size\" in f) else None,\n            )\n            file_infos.append(file_info)\n\n        return sorted(file_infos, key=lambda f: f.path)\n\n    def _download_file(self, remote_file_path, local_path):\n        endpoint = posixpath.join(\"/\", remote_file_path)\n        resp = http_request(self._host_creds, endpoint, \"GET\", stream=True, timeout=10)\n        augmented_raise_for_status(resp)\n        with open(local_path, \"wb\") as f:\n            chunk_size = 1024 * 1024  # 1 MB\n            for chunk in resp.iter_content(chunk_size=chunk_size):\n                f.write(chunk)\n\n    def delete_artifacts(self, artifact_path=None):\n        endpoint = posixpath.join(\"/\", artifact_path) if artifact_path else \"/\"\n        resp = http_request(self._host_creds, endpoint, \"DELETE\", stream=True, timeout=10)\n        augmented_raise_for_status(resp)\n", "path": "mlflow/store/artifact/http_artifact_repo.py"}], "after_files": [{"content": "import os\nimport posixpath\n\nfrom mlflow.entities import FileInfo\nfrom mlflow.store.artifact.artifact_repo import ArtifactRepository, verify_artifact_path\nfrom mlflow.tracking._tracking_service.utils import _get_default_host_creds\nfrom mlflow.utils.file_utils import relative_path_to_artifact_path\nfrom mlflow.utils.rest_utils import augmented_raise_for_status, http_request\n\n\nclass HttpArtifactRepository(ArtifactRepository):\n    \"\"\"Stores artifacts in a remote artifact storage using HTTP requests\"\"\"\n\n    @property\n    def _host_creds(self):\n        return _get_default_host_creds(self.artifact_uri)\n\n    def log_artifact(self, local_file, artifact_path=None):\n        verify_artifact_path(artifact_path)\n\n        file_name = os.path.basename(local_file)\n        paths = (artifact_path, file_name) if artifact_path else (file_name,)\n        endpoint = posixpath.join(\"/\", *paths)\n        with open(local_file, \"rb\") as f:\n            resp = http_request(self._host_creds, endpoint, \"PUT\", data=f)\n            augmented_raise_for_status(resp)\n\n    def log_artifacts(self, local_dir, artifact_path=None):\n        local_dir = os.path.abspath(local_dir)\n        for root, _, filenames in os.walk(local_dir):\n            if root == local_dir:\n                artifact_dir = artifact_path\n            else:\n                rel_path = os.path.relpath(root, local_dir)\n                rel_path = relative_path_to_artifact_path(rel_path)\n                artifact_dir = (\n                    posixpath.join(artifact_path, rel_path) if artifact_path else rel_path\n                )\n            for f in filenames:\n                self.log_artifact(os.path.join(root, f), artifact_dir)\n\n    def list_artifacts(self, path=None):\n        endpoint = \"/mlflow-artifacts/artifacts\"\n        url, tail = self.artifact_uri.split(endpoint, maxsplit=1)\n        root = tail.lstrip(\"/\")\n        params = {\"path\": posixpath.join(root, path) if path else root}\n        host_creds = _get_default_host_creds(url)\n        resp = http_request(host_creds, endpoint, \"GET\", params=params)\n        augmented_raise_for_status(resp)\n        file_infos = []\n        for f in resp.json().get(\"files\", []):\n            file_info = FileInfo(\n                posixpath.join(path, f[\"path\"]) if path else f[\"path\"],\n                f[\"is_dir\"],\n                int(f[\"file_size\"]) if (\"file_size\" in f) else None,\n            )\n            file_infos.append(file_info)\n\n        return sorted(file_infos, key=lambda f: f.path)\n\n    def _download_file(self, remote_file_path, local_path):\n        endpoint = posixpath.join(\"/\", remote_file_path)\n        resp = http_request(self._host_creds, endpoint, \"GET\", stream=True)\n        augmented_raise_for_status(resp)\n        with open(local_path, \"wb\") as f:\n            chunk_size = 1024 * 1024  # 1 MB\n            for chunk in resp.iter_content(chunk_size=chunk_size):\n                f.write(chunk)\n\n    def delete_artifacts(self, artifact_path=None):\n        endpoint = posixpath.join(\"/\", artifact_path) if artifact_path else \"/\"\n        resp = http_request(self._host_creds, endpoint, \"DELETE\", stream=True)\n        augmented_raise_for_status(resp)\n", "path": "mlflow/store/artifact/http_artifact_repo.py"}]}