- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是问了一些错误的问题here .我是 Azure 的新手,所以请耐心等待。
我在我的Azure存储帐户中上传了一个文本文件。现在,在我的辅助角色中,我需要做的是每次运行它时,它都会从数据库中获取一些内容,并且该内容必须写入上传的内容中文本文件,具体来说,每次文本文件的内容都应该被一些新内容覆盖。
我想知道,有没有一种方法可以修改文本文件,而不是像通常那样先下载到本地,然后再修改并上传。
我正在寻找某种方式,比如以文本形式读取它的方式,使用“DownloadToStream”。我的意思是,我们不能在现有的文本文件中上传一些文本流吗?
最佳答案
鉴于您的文件结构是固定的,让我们举个例子。假设您的文件如下所示,其中每个条目都位于新行中:
Line1: this is line 1
Line2: this is line 2
Line3: this is line 3
...
...
...
现在,当您上传新文件时(假设该文件不存在),无论文件大小如何,您都需要使用 Put Block 和 Commit Block List 分块上传它们。您要做的就是为每行分配一个 block ID(理想情况下您希望给 block ID 与行号相同,例如 000001、000002 等)并放置这些行。上传整个文件后,您将提交阻止列表。
接下来,当想要更新文件时,您要做的第一件事就是获取已提交的阻止列表。现在假设您要更改第 2 行。您要做的是将 block 操作放在第二个 block 上并提供新内容。提交该 block 后,您需要再次提交 block 列表。
这是示例代码,说明了我上面提到的内容:
var storageAccount = new CloudStorageAccount(new StorageCredentials("myaccount", "accountkey"), true);
var client = storageAccount.CreateCloudBlobClient();
var container = client.GetContainerReference("mycontainer");
container.CreateIfNotExists();
var blob = container.GetBlockBlobReference("so.txt");
List<string> blockIds = new List<string>();
for (int i = 0; i < 10; i++)
{
int j = i + 1;
var blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(j.ToString("d6")));
blockIds.Add(blockId);
string content = "Line " + j + ": this is line #" + j + "\r\n";
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(content)))
{
blob.PutBlock(blockId, ms, null);
}
}
blob.PutBlockList(blockIds);
int j1 = 2;
var blockIdNew = Convert.ToBase64String(Encoding.UTF8.GetBytes(j1.ToString("d6")));
string newContent = "Line " + j1 + ": this is line #" + j1 + " - this is modified.\r\n";
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(newContent)))
{
blob.PutBlock(blockIdNew, ms, null);
}
blob.PutBlockList(blockIds);
关于azure - 修改Azure存储中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058855/
前言: 有时候,一个数据库有多个帐号,包括数据库管理员,开发人员,运维支撑人员等,可能有很多帐号都有比较大的权限,例如DDL操作权限(创建,修改,删除存储过程,创建,修改,删除表等),账户多了,管理
这个问题已经有答案了: Condition variable deadlock (2 个回答) 已关闭 5 年前。 在研究多线程时,我编写了以下代码,但在屏幕上没有观察到输出。我在这里做错了什么?我期
复制代码 代码如下: <IfModule mod_rewrite.c> RewriteEngineOn RewriteBase/ #将www.zzvips.com跳转到www.zzv
复制代码 代码如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 把 www.zzvips.com
复制代码 代码如下: Const T_GATEWAY = "1.1.1.1" '网关 Const T_NEWDNS1 = "2.2.2.2" 'DNS1
0. 修改索引 大文本字段支持排序 PUT http://localhost:9200/lrc_blog/_mapping //请求体 { "properties": { "title": { "t
仅 react 当状态发生变化时重新渲染 . 那么为什么我会直接看到我对真实 DOM 所做的更改呢? 我知道我正在修改真实的 DOM,但是当我根本没有改变状态时触发重新渲染的是什么。 import R
Xcode beta 5 推出 @FetchRequest对于 SwiftUI。 我有一个 View ,它有一个 @FetchRequest . NSFetchRequest是在管理器中创建的,该管理
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
我有一个表达式[text][id]应替换为链接 text 解决方案是( id 是整数) $s = preg_replace("/\[([^\]]+)(\]*)\]\[([0-9]+)\]/","$1$
我在 repo 中有一个文件,我不想让任何人更新。 我能做什么? 最佳答案 你想要svn锁:http://www.linxit.de/svnbook/en/1.2/svn.ref.svn.c.lock
说我有项目 list 。我想导出到csv,但在此之前我想做一些计算/修改。 基本上,设置如下所示: PS C:\Files> gci Directory: C:\Files Mode
我有一个非常简单的问题 - 是否可以修改 Java API 的源代码,例如Junit,JABX ? 我知道这似乎是一个非常愚蠢的问题,但它一直困扰着我一段时间。 最佳答案 如果您可以掌握源代码,那么请
我有一个带有变量/列的小标题,其中包括不同形状的小标题列表。我想为其中一个变量中的每个(子)标题添加一个变量/列。 例如此类数据 library("tibble") aaa aaa # A tibb
我有几个菜单,可以在单击时向当前链接添加变量。这是一个例子: 1 2 3 x y z 我的问题是,如果我选择“y”2次,它会添加“&cord=y”2次。相反,我希望它替
我有两个项目:一个服务项目和一个服务安装程序项目。服务项目具有适合我的产品的装配信息。它包括公司信息和正确的服务名称。一旦服务实际安装,所有这些似乎都会被忽略。安装服务时,它使用在服务安装程序的ini
以下代码何时可能产生副作用? @some = map { s/xxx/y/; $_ } @some; perlcritic 将其解释为危险的,因为例如: @other = map { s/xxx/y/
我想知道以下哪种解决方案更好:我想修改一些 .class 文件,我意识到有两种方法可以做到这一点: 反编译.class文件,修改它,最后再次编译。 - 直接用十六进制编辑器修改。 谢谢 最佳答案 在这
这是我的按钮代码 onclick 我希望我的程序等待用户单击一个 JPanel,并且当用户单击 JPanel 时,它应该在控制台上打印其名称。 此按钮代码未显示输出 JPopupMenu popu
我正在使用一个具有“getName()”方法的特定 API。 getName() 返回一个字符串。是否可以修改该字符串? API 中不包含修饰符方法,并且 String getName() 返回的是私
我是一名优秀的程序员,十分优秀!