当前位置: 首页 > 知识库问答 >
问题:

避免过度写入Blob AZURE

孙宏壮
2023-03-14

如果我在文件已经存在的同一个容器中上传azure blob上的文件,它正在覆盖文件,如何避免覆盖相同的文件?下面我提到的场景...

步骤1-将文件“abc.jpg”上传到azure上名为“filecontainer”的容器中

第二步-一旦它被上传,尝试上传一些不同的同名文件到同一个容器

输出 - 它将用最新上传的文件覆盖现有文件

我的要求-我想避免这种覆盖,因为不同的人可能会将具有相同名称的文件上传到我的容器。

请帮帮忙

附笔。

-我不想为不同的用户创建不同的容器

-我将RESTAPI与Java一起使用

共有3个答案

汪翰墨
2023-03-14

让我这样说:

  • 第一步-<code>用户X</code>上传文件“abc1.jpg”,并将其保存到本地文件夹XYZ</li>中
  • 第二步-<code>用户Y</code>上传另一个名为“abc1.jpg”的文件,然后再次将其保存在本地文件夹XYZ中

你现在做什么?

我用这个来说明你的问题和Azure没有任何关系!

保存文件时不要依赖原始文件名。无论您在哪里保存它们。生成随机名称(例如GUID)并将原始名称作为元数据“附加”。

柳飞鸾
2023-03-14

您无法控制用户上传文件的名称。但是,您可以控制存储这些文件的名称。标准方法是生成一个 Guid 并相应地命名每个文件。发生冲突的可能性几乎为零。

A simple pseudocode looks like this:

//generate a Guid and rename the file the user uploaded with the generated Guid
//store the name of the file in a dbase or what-have-you with the Guid
//upload the file to the blob storage using the name you generated above

希望有帮助。

夏兴生
2023-03-14

Windows Azure Blob存储支持条件标头,使用条件标头可以防止覆盖Blob。您可以在此处阅读有关条件标题的更多信息:http://msdn.microsoft.com/en-us/library/windowsazure/dd179371.aspx.

因为您希望blob不被覆盖,所以您需要指定< code>If-None-Match条件头,并将其值设置为< code>*。这将导致上传操作失败,并显示< code >前提条件失败(412)错误。

其他想法是在上传之前检查blob的存在(通过获取它的属性),但是我不推荐这种方法,因为它可能会导致一些并发问题。

 类似资料:
  • 我有一个. NET应用程序,它使用WebClient和SAS令牌将blob上传到容器。默认行为是具有相同名称的blob被替换/覆盖。 有没有办法在服务器上改变它,例如,防止替换已经存在的blob? 我已经看到了避免过度写入blobs AZURE,但它是关于客户端的。 我的目标是保护服务器免受重写blob的影响。 AFAIK 文件直接上传到容器,没有机会拦截请求并检查 blob 是否存在。 编辑 让

  • 什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。 而造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的

  • 在我的项目中,我有一些软件包,如: 我为每种包定义了几个记录器,例如: 还有更多... 问题是,当我使用com.project编写日志时。在我的记录器中,输出被写入com.project。我的滚动文件日志并进入com。项目文件日志。 我只是想把输出写进com.project。仅限我的文件日志。我怎么解决这个问题?

  • 我在我的项目中使用spack-sql-2.3.1v、kafka和java8。与 在消费者方面,我尝试使用下面的代码在hdfs me中编写文件 当我存储到hdfs文件夹中时,它看起来像下面的东西,即每个文件都在1.5k即几个KB。 由于这个小文件,它需要大量的处理时间,而我从hdfs中读取更大的数据集 问题: > 如果我想计算给定hdfs文件夹中的记录总数,如何计算? 新更改后 运行成功结果包括:

  • 问题内容: 我是mongodb的新手。我可以知道如何避免重复输入。在关系表中,我们使用主键来避免它。我可以知道如何使用Java在Mongodb中指定它吗? 问题答案: 在选项中使用索引。 您也可以跨多个字段执行此操作。 有关 更多详细信息和示例, 请参阅 文档中的 此部分 。 MongoDB索引可以有选择地施加一个 唯一的键约束 ,以确保不会插入任何索引键值与现有文档值匹配的文档。 如果希望从唯一

  • 问题内容: 我正在用Java创建一个简单的单词计数程序,该程序可以读取目录中基于文本的文件。 但是,我继续收到错误消息: 从这行代码: 我知道可能是因为我使用了一个在文本文件中不包含某些字符的字符,其中一些包含其他语言的字符。但我想包括那些字符。 后来我在JavaDocs上了解到可选,并且仅用于更有效地读取文件,因此我将代码更改为: 但是某些文件仍然抛出。我不知道为什么 我想知道是否有一个包含所有