你在学习golang相关的知识吗?本文《S3 以编程方式删除以换行符 (%0A) 结尾的文件?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战
你在学习golang相关的知识吗?本文《S3 以编程方式删除以换行符 (%0A) 结尾的文件?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!
问题内容我在 s3 中有一堆文件在控制台中显示为以“%0A”结尾。我想以编程方式删除这些文件。
当我使用此方法并设置后缀为“%0A”的密钥时,没有出现错误,但文件没有被删除。
我不知道文件最初写入时的样子。
s3 console 应该能够删除它,无论它包含什么字符或它有多损坏(如果我们谈论的是同一件事)。您有足够的权限吗?
以其他方式执行此操作时,首先需要确定“%0a”实际上是名称的一部分还是 url 编码的 lf 字符(“\n”)。请记住,您可能也看不到其他不可打印的字符。确定这一点的最佳方法是在 amazon 控制台中打开它,在服务菜单中选择 s3,找到您的存储桶并单击您的文件,记下该对象的链接。
如果“%0a”是名称的一部分,您将看到对象名称为“foo%0a”,但在链接中它将看起来像“foo%250a”。在这种情况下, s3 rm s3://bucket/foo%0a
应该可以解决问题。
如果“%0a”表示 url 编码的“\n”字符,那么您应该看到对象名称(位于选项卡上方)只是“foo”,但会在 url 中看到“foo%0a”作为对象名称。在这种情况下,您需要在发出 s3 rm
命令时将新行嵌入到密钥中。这取决于您的操作系统。例如。在 linux/unix 上你将这样输入:
aws-cli s3 rm 's3://BUCKET/foo
'
请注意引号,并且收盘引号位于新行的开头。这将使新行成为作为命令行参数传递的值的一部分。
另请注意,aws-cli 在某些系统上可能仅称为 aws,但鉴于您提供了 s3 rm 命令作为示例,我假设您已经知道它在您的系统上是什么。如果在 windows 上使用 powershell,请使用反引号代替引号。
现在,检查该对象的链接并查看其中还有哪些其他字符。查看您报告的示例和问题,我怀疑您的文件名中不止一个。这里重要的一点是,您的对象名称可能包含更多不可打印的字符,并且您不会在 s3 控制台中看到这些字符,但 link 将以 url 编码形式包含所有这些字符。因此,您可以从链接中提取实际的确切名称。请注意,您链接的 aws-cli 和编程接口均采用实际名称,而不是 url 编码的名称。因此,如果您使用 aws-cli,则需要将所有不可打印字符嵌入到命令行参数中。如果您使用编程接口,则需要将它们嵌入到您提供给调用的密钥字符串中(例如,放置“\n”而不是换行符)。尽管我认为这部分非常明显。并且相信,一旦您看到包含所有不可打印内容的实际文件名,您就会知道该怎么做。
终于介绍完啦!小伙伴们,这篇关于《S3 以编程方式删除以换行符 (%0A) 结尾的文件?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!
--结束END--
本文标题: S3 以编程方式删除以换行符 (%0A) 结尾的文件?
本文链接: https://lsjlt.com/news/596056.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0