diff --git a/src/Blob.sln b/src/Blob.sln
index 456b4541f48febef3019fc5f7f887f1de3bb037a..a828e051d6b078ac9efd525705ce1f92ec0cbe66 100644
--- a/src/Blob.sln
+++ b/src/Blob.sln
@@ -1,9 +1,8 @@
-
 Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.28803.156
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blob", "Blob\Blob.csproj", "{4F76105D-8FC5-403A-A822-9F306A028A76}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blob", "Blob\Blob.csproj", "{4F76105D-8FC5-403A-A822-9F306A028A76}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/src/Blob/Blob.csproj b/src/Blob/Blob.csproj
index 3286fed30a997268ef4d504d9654ca322667683a..03aebbc9d85aa7219313fa9a50bbc7fc594b1dd3 100644
--- a/src/Blob/Blob.csproj
+++ b/src/Blob/Blob.csproj
@@ -24,5 +24,6 @@
 		<PackageReference Include="Coscine.ResourceLoader" Version="2.*-*" />
 		<PackageReference Include="Coscine.ResourceTypeBase" Version="2.*-*" />
 		<PackageReference Include="Coscine.WaterbutlerHelper" Version="2.*-*" />
+		<PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" />
 	</ItemGroup>
 </Project>
diff --git a/src/Blob/Controllers/BlobController.cs b/src/Blob/Controllers/BlobController.cs
index 5040f681c336430868100d043a5ff00151e465fe..cce66152234d3c4dfe1b2a123aba1bce0f91a2c1 100644
--- a/src/Blob/Controllers/BlobController.cs
+++ b/src/Blob/Controllers/BlobController.cs
@@ -144,6 +144,37 @@ namespace Coscine.Api.Blob.Controllers
         /// <returns>File if file exists otherwise status code 204, 400, 401 or 404 </returns>
         [HttpGet("[controller]/{resourceId}/{*path}")]
         [DisableRequestSizeLimit]
+        [ApiExplorerSettings(IgnoreApi = true)]
+        public async Task<IActionResult> GetFileWithPath(string resourceId, string path)
+        {
+            return await GetFile(resourceId, path);
+        }
+
+        /// <summary>
+        ///  This method checks if the given file exists and returns it
+        /// </summary>
+        /// <param name="resourceId">Id of the resource</param>
+        /// <param name="path"> Path to the file </param>
+        /// <returns>File if file exists otherwise status code 204, 400, 401 or 404 </returns>
+        [HttpGet("[controller]/{resourceId}/")]
+        [DisableRequestSizeLimit]
+        public async Task<IActionResult> GetFileWithParameter(string resourceId, [System.Web.Http.FromUri] string path)
+        {
+            // Strip the first slash, to reuse the previous implementation.
+            if (path.StartsWith("/"))
+            {
+                path = path[1..];
+            }
+
+            return await GetFile(resourceId, path);
+        }
+
+        /// <summary>
+        ///  This method checks if the given file exists and returns it
+        /// </summary>
+        /// <param name="resourceId">Id of the resource</param>
+        /// <param name="path"> Path to the file </param>
+        /// <returns>File if file exists otherwise status code 204, 400, 401 or 404 </returns>
         public async Task<IActionResult> GetFile(string resourceId, string path)
         {
             var user = _authenticator.GetUser();
@@ -194,6 +225,40 @@ namespace Coscine.Api.Blob.Controllers
         [DisableRequestSizeLimit]
         [RequestFormLimits(MultipartBodyLengthLimit = long.MaxValue)]
         [HttpPut("[controller]/{resourceId}/{*path}")]
+        [ApiExplorerSettings(IgnoreApi = true)]
+        public async Task<IActionResult> UploadFileWithPath(string resourceId, string path, List<IFormFile> files)
+        {
+            return await UploadFile(resourceId, path, files);
+        }
+
+        /// <summary>
+        /// This method uploads a given File
+        /// </summary>
+        /// <param name="resourceId">Id of the resource </param>
+        /// <param name="path">Path to the file</param>
+        /// <param name="files">List of files.</param>
+        /// <returns>status code 204 if file is uploaded otherwise status code 400 or 403</returns>
+        [DisableRequestSizeLimit]
+        [RequestFormLimits(MultipartBodyLengthLimit = long.MaxValue)]
+        [HttpPut("[controller]/{resourceId}/")]
+        public async Task<IActionResult> UploadFileWithParameter(string resourceId, [System.Web.Http.FromUri] string path, List<IFormFile> files)
+        {
+            // Strip the first slash, to reuse the previous implementation.
+            if (path.StartsWith("/"))
+            {
+                path = path[1..];
+            }
+
+            return await UploadFile(resourceId, path, files);
+        }
+
+        /// <summary>
+        /// This method uploads a given File
+        /// </summary>
+        /// <param name="resourceId">Id of the resource </param>
+        /// <param name="path">Path to the file</param>
+        /// <param name="files">List of files.</param>
+        /// <returns>status code 204 if file is uploaded otherwise status code 400 or 403</returns>
         public async Task<IActionResult> UploadFile(string resourceId, string path, List<IFormFile> files)
         {
             var user = _authenticator.GetUser();
@@ -268,6 +333,36 @@ namespace Coscine.Api.Blob.Controllers
         /// <param name="path">Path to the file</param>
         /// <returns>status code 204 if deletion successful otherwise status code 400, 401 or 404 </returns>
         [HttpDelete("[controller]/{resourceId}/{*path}")]
+        [ApiExplorerSettings(IgnoreApi = true)]
+        public async Task<IActionResult> DeleteFileWithPath(string resourceId, string path)
+        {
+            return await DeleteFile(resourceId, path);
+        }
+
+        /// <summary>
+        /// This method deletes a given file
+        /// </summary>
+        /// <param name="resourceId">Id of the resource </param>
+        /// <param name="path">Path to the file</param>
+        /// <returns>status code 204 if deletion successful otherwise status code 400, 401 or 404 </returns>
+        [HttpDelete("[controller]/{resourceId}/")]
+        public async Task<IActionResult> DeleteFileWithParameter(string resourceId, [System.Web.Http.FromUri] string path)
+        {
+            // Strip the first slash, to reuse the previous implementation.
+            if (path.StartsWith("/"))
+            {
+                path = path[1..];
+            }
+
+            return await DeleteFile(resourceId, path);
+        }
+
+        /// <summary>
+        /// This method deletes a given file
+        /// </summary>
+        /// <param name="resourceId">Id of the resource </param>
+        /// <param name="path">Path to the file</param>
+        /// <returns>status code 204 if deletion successful otherwise status code 400, 401 or 404 </returns>
         public async Task<IActionResult> DeleteFile(string resourceId, string path)
         {
             var user = _authenticator.GetUser();