Skip to content

Commit

Permalink
Add ApiHub support
Browse files Browse the repository at this point in the history
  • Loading branch information
safihamid authored and davidebbo committed Apr 7, 2016
1 parent 30e3cec commit a2b2418
Show file tree
Hide file tree
Showing 32 changed files with 464 additions and 45 deletions.
21 changes: 21 additions & 0 deletions WebJobs.Script.sln
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,24 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HttpTrigger-Disabled", "Htt
sample\HttpTrigger-Disabled\index.js = sample\HttpTrigger-Disabled\index.js
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiHubTrigger-CSharp", "ApiHubTrigger-CSharp", "{A308340E-16AC-47DA-9402-A279F681D5F3}"
ProjectSection(SolutionItems) = preProject
sample\ApiHubTrigger-CSharp\function.json = sample\ApiHubTrigger-CSharp\function.json
sample\ApiHubTrigger-CSharp\run.csx = sample\ApiHubTrigger-CSharp\run.csx
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiHubTrigger-Batch", "ApiHubTrigger-Batch", "{6F2A5DC3-EE0F-476F-A79B-31D4ED8C7DEB}"
ProjectSection(SolutionItems) = preProject
sample\ApiHubTrigger-Batch\function.json = sample\ApiHubTrigger-Batch\function.json
sample\ApiHubTrigger-Batch\run.bat = sample\ApiHubTrigger-Batch\run.bat
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ApiHubTrigger", "ApiHubTrigger", "{5FBF4581-318C-4320-81AA-6B2F02AF34EC}"
ProjectSection(SolutionItems) = preProject
sample\ApiHubTrigger\function.json = sample\ApiHubTrigger\function.json
sample\ApiHubTrigger\index.js = sample\ApiHubTrigger\index.js
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -281,5 +299,8 @@ Global
{ACEE40C6-DA72-422E-99B6-2FA3824733CE} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
{DC1805CF-39CE-40E3-9F3A-E7C7DAD52B7E} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
{97B9DB7D-8014-46A0-9E51-6C02A99E4D38} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
{A308340E-16AC-47DA-9402-A279F681D5F3} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
{6F2A5DC3-EE0F-476F-A79B-31D4ED8C7DEB} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
{5FBF4581-318C-4320-81AA-6B2F02AF34EC} = {FF9C0818-30D3-437A-A62D-7A61CA44F459}
EndGlobalSection
EndGlobal
17 changes: 17 additions & 0 deletions sample/ApiHubTrigger-Batch/function.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"bindings": [
{
"type": "apiHubTrigger",
"connection": "AzureWebJobsDropBox",
"direction": "in",
"path": "testin/{name}"
},
{
"type": "apiHub",
"name": "output",
"connection": "AzureWebJobsDropBox",
"direction": "out",
"path": "testOutBatch/{name}"
}
]
}
4 changes: 4 additions & 0 deletions sample/ApiHubTrigger-Batch/run.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
echo OFF
SET /p input=<%input%
echo Windows Batch script processed file
echo %input% > %output%
18 changes: 18 additions & 0 deletions sample/ApiHubTrigger-CSharp/function.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"bindings": [
{
"type": "apiHubTrigger",
"connection": "AzureWebJobsDropBox",
"direction": "in",
"path": "test/{name}",
"name": "input"
},
{
"name": "output",
"type": "apiHub",
"connection": "AzureWebJobsDropBox",
"direction": "out",
"path": "testOut/{name}"
}
]
}
14 changes: 14 additions & 0 deletions sample/ApiHubTrigger-CSharp/run.csx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Diagnostics;
using Microsoft.Azure.WebJobs.Host;

public static void Run(string input, out string output, TraceWriter log)
{
log.Verbose($"C# ApiHub trigger function processed a file...");

output = input;
}
17 changes: 17 additions & 0 deletions sample/ApiHubTrigger/function.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"bindings": [
{
"type": "apiHubTrigger",
"connection": "AzureWebJobsDropBox",
"direction": "in",
"path": "testinnode/{name}"
},
{
"type": "apiHub",
"name": "output",
"connection": "AzureWebJobsDropBox",
"direction": "out",
"path": "testoutnode/{name}"
}
]
}
6 changes: 6 additions & 0 deletions sample/ApiHubTrigger/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = function (context, input) {
context.log('Node.js ApiHub trigger function processed ', input);
context.done(null, {
output: input
});
}
17 changes: 12 additions & 5 deletions src/WebJobs.Script.Host/WebJobs.Script.Host.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@
<HintPath>..\..\packages\Microsoft.Azure.DocumentDB.1.5.3\lib\net40\Microsoft.Azure.Documents.Client.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.ApiHub.Sdk">
<HintPath>..\..\packages\Microsoft.Azure.ApiHub.Sdk.0.3\tools\Microsoft.Azure.ApiHub.Sdk.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Azure.NotificationHubs, Version=2.16.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.NotificationHubs.1.0.3\lib\net45-full\Microsoft.Azure.NotificationHubs.dll</HintPath>
<Private>True</Private>
Expand All @@ -80,23 +83,27 @@
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.1.0.2-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.1.0.2-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.ApiHub, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.ApiHub.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.ApiHub.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.DocumentDB, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.DocumentDB.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.DocumentDB.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.DocumentDB.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.DocumentDB.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.EasyTables, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.EasyTables.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.EasyTables.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.EasyTables.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.EasyTables.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.NotificationHubs, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.SendGrid, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.SendGrid.1.0.2-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.SendGrid.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.SendGrid.1.0.2-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.SendGrid.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Host, Version=1.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
Expand Down
12 changes: 7 additions & 5 deletions src/WebJobs.Script.Host/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,19 @@
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebHooks.Common" version="1.2.0-rc1" targetFramework="net46" />
<package id="Microsoft.AspNet.WebHooks.Receivers" version="1.2.0-beta6" targetFramework="net46" />
<package id="Microsoft.Azure.ApiHub.Sdk" version="0.3" targetFramework="net46" />
<package id="Microsoft.Azure.DocumentDB" version="1.5.3" targetFramework="net46" />
<package id="Microsoft.Azure.Mobile.Client" version="2.0.1" targetFramework="net46" />
<package id="Microsoft.Azure.NotificationHubs" version="1.0.3" targetFramework="net46" />
<package id="Microsoft.Azure.ServiceBus.EventProcessorHost" version="1.4.0" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Core" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions" version="1.0.2-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.DocumentDB" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.EasyTables" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.NotificationHubs" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="1.0.2-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions" version="1.0.2-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.ApiHub" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.DocumentDB" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.EasyTables" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.NotificationHubs" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="1.0.2-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.ServiceBus" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net46" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net46" />
Expand Down
1 change: 1 addition & 0 deletions src/WebJobs.Script.WebHost/Web.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
http://go.microsoft.com/fwlink/?LinkId=301879
-->
<configuration>

<!--
For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
Expand Down
17 changes: 12 additions & 5 deletions src/WebJobs.Script.WebHost/WebJobs.Script.WebHost.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@
<HintPath>..\..\packages\Autofac.WebApi2.3.4.0\lib\net45\Autofac.Integration.WebApi.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.ApiHub.Sdk">
<HintPath>..\..\packages\Microsoft.Azure.ApiHub.Sdk.0.3\tools\Microsoft.Azure.ApiHub.Sdk.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.WebHooks.Common, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.AspNet.WebHooks.Common.1.2.0-rc1\lib\net45\Microsoft.AspNet.WebHooks.Common.dll</HintPath>
<Private>True</Private>
Expand Down Expand Up @@ -133,23 +136,27 @@
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.1.0.2-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.1.0.2-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.ApiHub, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.ApiHub.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.ApiHub.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.DocumentDB, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.DocumentDB.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.DocumentDB.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.DocumentDB.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.DocumentDB.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.EasyTables, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.EasyTables.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.EasyTables.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.EasyTables.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.EasyTables.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.NotificationHubs, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.1.0.0-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.1.0.0-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.NotificationHubs.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Extensions.SendGrid, Version=1.0.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.SendGrid.1.0.2-alpha-10266\lib\net45\Microsoft.Azure.WebJobs.Extensions.SendGrid.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Azure.WebJobs.Extensions.SendGrid.1.0.2-alpha-10267\lib\net45\Microsoft.Azure.WebJobs.Extensions.SendGrid.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Azure.WebJobs.Host, Version=1.1.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
Expand Down
12 changes: 7 additions & 5 deletions src/WebJobs.Script.WebHost/packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,18 @@
<package id="Microsoft.AspNet.WebHooks.Receivers.Stripe" version="1.2.0-beta6" targetFramework="net45" />
<package id="Microsoft.AspNet.WebHooks.Receivers.Trello" version="1.2.0-beta6" targetFramework="net45" />
<package id="Microsoft.AspNet.WebHooks.Receivers.WordPress" version="1.2.0-beta6" targetFramework="net45" />
<package id="Microsoft.Azure.ApiHub.Sdk" version="0.3" targetFramework="net46" />
<package id="Microsoft.Azure.DocumentDB" version="1.5.3" targetFramework="net46" />
<package id="Microsoft.Azure.Mobile.Client" version="2.0.1" targetFramework="net46" />
<package id="Microsoft.Azure.NotificationHubs" version="1.0.3" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Core" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions" version="1.0.2-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.DocumentDB" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.EasyTables" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.NotificationHubs" version="1.0.0-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="1.0.2-alpha-10266" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions" version="1.0.2-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.ApiHub" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.DocumentDB" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.EasyTables" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.NotificationHubs" version="1.0.0-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.Extensions.SendGrid" version="1.0.2-alpha-10267" targetFramework="net46" />
<package id="Microsoft.Azure.WebJobs.ServiceBus" version="1.1.2-alpha-10289" targetFramework="net46" />
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net46" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net46" />
Expand Down
88 changes: 88 additions & 0 deletions src/WebJobs.Script/Binding/ApiHubBinding.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Reflection.Emit;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs.Host.Bindings.Path;
using Microsoft.Azure.WebJobs.Host.Bindings.Runtime;
using Microsoft.Azure.WebJobs.Script.Description;

namespace Microsoft.Azure.WebJobs.Script.Binding
{
public class ApiHubBinding : FunctionBinding
{
private readonly BindingTemplate _pathBindingTemplate;

public ApiHubBinding(ScriptHostConfiguration config, ApiHubBindingMetadata apiHubBindingMetadata, FileAccess access) : base(config, apiHubBindingMetadata, access)
{
if (apiHubBindingMetadata == null)
{
throw new ArgumentNullException("apiHubBindingMetadata");
}

if (string.IsNullOrEmpty(apiHubBindingMetadata.Path))
{
throw new ArgumentException("The ApiHub path cannot be null or empty.");
}

Key = apiHubBindingMetadata.Key;
Path = apiHubBindingMetadata.Path;
_pathBindingTemplate = BindingTemplate.FromString(Path);
}

public override bool HasBindingParameters
{
get
{
return _pathBindingTemplate.ParameterNames.Any();
}
}

public string Key { get; private set; }

public string Path { get; private set; }

public override Collection<CustomAttributeBuilder> GetCustomAttributes()
{
Collection<CustomAttributeBuilder> attributes = new Collection<CustomAttributeBuilder>();

var constructorTypes = new Type[] { typeof(string), typeof(string), typeof(FileAccess) };
var constructorArguments = new object[] { Key, Path, FileAccess.Read };

var attribute = new CustomAttributeBuilder(typeof(ApiHubFileAttribute).GetConstructor(constructorTypes), constructorArguments);

attributes.Add(attribute);

return attributes;
}

public override async Task BindAsync(BindingContext context)
{
string boundBlobPath = Path;
if (context.BindingData != null)
{
boundBlobPath = _pathBindingTemplate.Bind(context.BindingData);
}

boundBlobPath = Resolve(boundBlobPath);

var attribute = new ApiHubFileAttribute(Key, boundBlobPath, Access);

RuntimeBindingContext runtimeContext = new RuntimeBindingContext(attribute);
Stream blobStream = await context.Binder.BindAsync<Stream>(runtimeContext);

if (Access == FileAccess.Write)
{
await context.Value.CopyToAsync(blobStream);
}
else
{
await blobStream.CopyToAsync(context.Value);
}
}
}
}
Loading

0 comments on commit a2b2418

Please sign in to comment.