我试图打开文件以使用WinSCP .NET程序集从SFTP读取,这与将文件从SFTP存档到Azure blob的练习相当。
要将blob上传到Azure,我正在使用
using (var fileStream = inputStream)
{
blockBlob.UploadFromStream(fileStream);
blobUri = blockBlob.Uri.ToString();
}
Run Code Online (Sandbox Code Playgroud)
如何从SFTP服务器上的文件获取流?
我设法使用SftpClient下面的代码来获取流,并且可以工作,但是不幸的是,使用WinSCP .NET程序集无法实现相同的目的。
sftpClient.OpenRead(file.FullName)
Run Code Online (Sandbox Code Playgroud)
谁能帮我使用WinSCP .NET程序集实现相同的目的?
因为我需要使用用户名,密码和私钥连接到SFTP,所以我使用的是WinSCP .NET程序集。
谢谢
我实现了以下代码以将文本上载到Azure块blob:
CloudStorageAccount storageAccount = ...
CloudBlobClient blobClient = ...
CloudBlobContainer container = container.CreateIfNotExists();
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
blockBlob.UploadText(blob);
Run Code Online (Sandbox Code Playgroud)
我会定期从UploadText()操作中获得以下异常:
远程服务器返回错误:(400)错误请求.在System.Net.HttpWebRequest.GetResponse()... RequestID:27e93ddb-0001-0011-2113-0966db002000 RequestDate:星期六,17十月2015 19:38:47 GMT StatusMessage:指定的阻止列表无效.错误代码:InvalidBlockList
我理解在上传blob时发送正确有序的块ID列表并具有一致的块ID长度的重要性,但鉴于UploadText隐藏了这些细节,我不会认为除非框架中存在错误,否则可能发生阻止列表问题.显然,在下面的内容中,UploadText()调用REST API并处理块,但同样,这些都是隐藏的.
我上传的文字介于1kB到15MB之间,并且是UTF-8编码的.
我试图通过 Azure Blob 存储中的 URL 检索图像,但没有找到它,这是我得到的:
我的代码如下:
public async Task<bool> UploadFileAsync(string containerReference, string blobReference, string route)
{
CloudBlobContainer container = blobClient.GetContainerReference(containerReference);
container.CreateIfNotExists();
CloudBlockBlob blob = container.GetBlockBlobReference(blobReference);
try
{
using (var fileStream = System.IO.File.OpenRead(route))
{
await blob.UploadFromStreamAsync(fileStream);
}
}
catch (System.Exception)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
它成功地将文件上传到 blob:
然后我尝试检索其 URL 以直接访问它:
public string GetBlobUrl(string containerReference, string blobReference)
{
CloudBlobContainer container = blobClient.GetContainerReference(containerReference);
CloudBlockBlob blob = container.GetBlockBlobReference(blobReference);
return blob.Uri.ToString();
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
c# azure azure-storage azure-storage-blobs azure-blob-storage
我目前正在使用ADF按计划将文件从SFTP服务器复制到Blob存储.
文件名结构为AAAAAA_BBBBBB_CCCCCC.txt.
是否可以在复制到Blob存储之前重命名该文件,以便最终得到类似文件夹的结构,如下所示?
AAAAAA/BBBBBB/CCCCCC.txt
I came across multiple ways of connecting Azure Storage Blobs to Azure (like this one for example) Functions but all of them require me to use a BlockBlob type parameter in my Run function, therefore replacing the HTTPRequestMessage parameter I need. Is there a way to keep the HTTPRequestMessage parameter and connect to Azure Storage Blob?
Ultimately, I need to get a file reference from the blob to send to another service via Azure Function.
When I try …
我们最近对托管在Azure中的应用程序进行了“安全性审查”,其中之一是我们没有禁用TLS 1.0。
虽然我知道我们可以为Web角色甚至是App Services禁用TLS 1.0(或者至少很快将能够执行此操作),但我们还允许移动应用程序使用REST API直接将数据上传到Blob存储。扫描发现了这一点并将其标记为问题?
是否有人知道这里可能的解决方案,为每个容器禁用它的措施或其他措施?
我能看到的唯一解决方案是实现我们自己的端点,但这将是最后的选择。如果有人对这个问题有更简单的解决方案,是否会徘徊?
我创建了一个在创建或更新blob存储时触发的函数.我的团块结构:容器/ A-123/B-123/C-1-2-3
123是动态值
在这里我的功能
public class BlobTriggerFunction {
/**
* This function will be invoked when a new or updated blob is detected at the specified path. The blob contents are provided as input to this function.
*/
@FunctionName("blobtriggerfunction")
@StorageAccount("connection")
public static void run(
@BlobTrigger(name = "container", path = "container") CloudBlockBlob cloudBlockBlob,
@BindingName("name") String name,
final ExecutionContext context
) {
context.getLogger().info(cloudBlockBlob.getUri().toString());
context.getLogger().info(name);
}
Run Code Online (Sandbox Code Playgroud)
}
我总是得到错误
执行'Functions.blobtriggerfunction'(Reason ='检测到新blob:容器/ u-123/c-123/m-1-2-3-a50a-025592397574',Id = 6b9ae40c-f92b-46d4-8c1-41791167c355)不能使用给定的输入System.Private.CoreLib找到方法签名:执行函数时出现异常:Functions.blobtriggerfunction.System.Private.CoreLib:Result:Failure Exception:无法使用给定的输入堆栈找到方法签名:java.lang.NoSuchMethodException:无法使用com.microsoft.azure.functions.worker.broker中的给定输入找到方法签名. JavaMethodExecutor.lambda $在java.util.Optional.orElseThrow(Optional.java:290)的com.microsoft.azure.functions.worker.broker.JavaMethodExecutor.execute执行$ 0(JavaMethodExecutor.java:49)(JavaMethodExecutor.java:49 )com.microsoft.azure.functions.worker.broker.JavaFunctionBroker.invokeMethod(JavaFunctionBroker.java:47)at com.microsoft.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:33)at com. micros.com.azure.functions.worker.handler.InvocationRequestHandler.execute(InvocationRequestHandler.java:10)位于com.microsoft.azure的com.microsoft.azure.functions.worker.handler.MessageHandler.handle(MessageHandler.java:45). functions.worker.JavaWorkerClient …
关于如何使用Azure数据工厂将数据从Blob读取到SQL中,有很多文档,甚至还有关于如何将查询的输出转储到单个Blob的文档。我试图为表中的每一行(在Azure SQL Server上)创建一个Blob,由一个字段命名,并在另一字段中包含数据。
我的表有一个GUID id字段和一个nvarchar(max)data字段(其中包含JSON,尽管基本上无关紧要)。假设我有以下几行:
id | data
---------------------------------------+----------
38b2f551-5f13-40ce-8512-c108a05ecd44 | foo
4db5b25b-1194-44e9-a7b2-bc8889c32979 | bar
2a3bd653-ce14-4bd2-9243-6923e97224c6 | baz
Run Code Online (Sandbox Code Playgroud)
我希望创建以下Blob:
https://mycontainer.blob.core.windows.net/myblobs/38b2f551-5f13-40ce-8512-c108a05ecd44
https://mycontainer.blob.core.windows.net/myblobs/4db5b25b-1194-44e9-a7b2-bc8889c32979
https://mycontainer.blob.core.windows.net/myblobs/2a3bd653-ce14-4bd2-9243-6923e97224c6
Run Code Online (Sandbox Code Playgroud)
它们的内容应该是相关的数据字段,即foo,bar和baz分别。
Data Factory v2-每行生成一个json文件具有有效的答案,但它涉及一次查询数据库以获取所有ids,然后再查询N次以从每一行获取数据。似乎应该只对这两个字段查询一次,对文件名使用一个查询,对内容使用一个查询,但是我还无法弄清楚该怎么做。
azure-storage-blobs azure-data-factory azure-blob-storage azure-data-factory-2
我有一个SPA(用角度构建),并已部署到Azure Blob存储。当您从默认域中运行时,一切正常,但当我刷新任何页面/路由时,index.html不再加载,而是出现错误“请求的内容不存在”
谷歌搜索该词总共得到3个结果,所以我迷茫地尝试诊断和解决这个问题。
我们要为数据库配置计划备份。
我们在安全性-> Azure凭据中为Azure Blob设置了存储帐户和访问密钥。
在备份目录中,输入azure:// containName时,此容器名称存在于给定的存储帐户中。
作为响应,它说目录azure:// backup /在主机ml01上不存在。您想尝试创建它吗?
有人可以帮我配置吗?