标签: cloud-storage

Azure blob存储:多个容器的共享访问签名?

我正在创建一个将在Azure中托管的应用程序.在此应用程序中,用户将能够上传自己的内容.他们还将能够配置能够读取其文件的其他受信任应用用户的列表.我正在试图弄清楚如何构建存储.

我认为我将创建一个以每个用户的应用程序ID命名的存储容器,并且他们将能够在那里上传文件.我的问题涉及如何授予用户应该访问的所有文件的读访问权限.我一直在阅读有关共享访问签名的内容,他们似乎非常适合我正在努力实现的目标.但是,我正在评估授予用户访问权限的最有效方式.我认为存储访问策略可能很有用.但具体来说:

我可以使用一个共享访问签名(或存储的访问策略)来授予用户访问多个容器的权限吗?我发现了一条我认为非常相关的信息:

http://msdn.microsoft.com/en-us/library/windowsazure/ee393341.aspx
Run Code Online (Sandbox Code Playgroud)

"容器,队列或表最多可包含5个存储的访问策略.每个策略都可以由任意数量的共享访问签名使用."

但我不确定我是否理解正确.如果用户与其他20个人连接,我可以授予他或她访问20个特定容器的权限吗?当然,我可以生成20个单独的存储访问策略,但这看起来效率不高,当他们第一次登录时,我计划显示来自所有其他可信应用用户的内容摘要,这相当于要求一次20个签名(如果我理解正确的话).

谢谢你的任何建议...... - 贝恩

azure azure-storage azure-storage-blobs cloud-storage

6
推荐指数
1
解决办法
2449
查看次数

Azure存储表逐行删除

我试图仅通过rowkey值从azure存储过滤器中删除行.但我没有看到删除操作的任何重载,我们只能用rowkey过滤.是否有其他选项可以从azure存储表中删除具有特定rowkey的记录的行?

RemoveEntityByRowKey('123456');
public static void RemoveEntityByRowKey(string myRowKey)
        {
            try
            {
                CloudTable table = _tableClient.GetTableReference("MyAzureTable"); 
                       TableOperation delteOperation = TableOperation.Delete(myRowKey);
                table.Execute(delteOperation);
            }
            catch (Exception ex)
            {
                LogError.LogErrorToAzure(ex);
                throw;
            }
        }
Run Code Online (Sandbox Code Playgroud)

c# azure azure-table-storage cloud-storage

6
推荐指数
3
解决办法
7922
查看次数

为什么 Google Drive 会删除我的 Git 文件?

我为我的个人项目使用本地 Git 存储库(无远程版本)。一切都会同步到 Google Drive,包括 Git 文件和目录。

昨天我注意到两个类从我的工作副本中消失了。我使用 Git checkout 来检索它们。今天,三个类(文件)消失了,我的 Gitgit status存储库损坏了,所以可以说那里没有存储库。我注意到 Google Drive 正在同步大约 30,000 个文件,其中大部分是从该目录中删除文件。我停下来检查我的回收站,在那里我发现了一堆 Git 文件。恢复它们返回了我的 Git 存储库,我曾经将其硬重置为 HEAD 并取回丢失的类/文件。

有没有人有过将本地 Git 存储库同步到云存储并找到解决方案的经验?我不明白为什么 Google Drive 应该决定清除我的文件,尤其是 Git 文件。

git cloud-storage

6
推荐指数
1
解决办法
1777
查看次数

使用 ActiveStorage 时,是否不喜欢在生产环境中使用 :local/:disk 选项?会不会导致我无法备份文件?

我正在开发一个使用 Rails 作为后端 API 服务器的项目。上传客户文件将是该应用程序最重要的部分之一(它类似于 CRM/ERP 系统)。然而,由于客户的安全和隐私问题,我的客户更喜欢将所有数据和文件存储到他们自己的服务器中。

但是,当我阅读 ActiveStorage 的文档时,听起来:disk选项仅用于test环境development。我知道使用像 s3 这样的云存储将受益于可扩展性和备份内容,这对于 Web 开发来说非常安全和灵活,但毕竟,你知道,客户的要求。

1)因此,想知道是否最好:disk在任何生产环境中使用?我可能会错过哪些缺点?

另外,我对文件进行备份会不会很困难,正如我在路径中看到的/storage,文件都保存为不与原始文件同名的文件。

我有一个猜测,我是否可以通过执行pg_dump和克隆整个站点目录(包括/storage文件)来备份整个站点(它们将是 gitignore,所以我需要自己备份它们并执行一些 git clone git pull 操作)在进行恢复或服务器转换时)。这个工作流程能完美运行吗?

:disk2) 如果我使用ActiveStorage 中的选项,实际的备份和恢复流程应该是什么?

感谢您的帮助,并且非常感谢您的帮助!

ruby-on-rails cloud-storage rails-activestorage

6
推荐指数
1
解决办法
1453
查看次数

免费的 CORS 代理

我有一个 chrome 扩展,目前使用 storage.sync 作为数据存储。我正在尝试升级到更强大的数据存储(cloudant、iriscouch),以便我可以扩展扩展程序的功能。

我面临的问题是,我见过的免费云存储选项(cloudant、iriscouch、mongolab)都不支持 cors(或者在 mongolab 的情况下 - 免费层是不够的)

所以我有几个问题:

  1. 是否有完全支持 cors 的免费 nosql 云存储选项?
  2. 如果没有,是否有我可以使用的免费代理。我试过http://www.corsproxy.com/但它似乎只支持 GET 所以对我来说还不够。
  3. 你将如何免费解决这个问题,而不在我自己的硬件上托管任何东西。

谢谢!

couchdb mongodb nosql cors cloud-storage

5
推荐指数
1
解决办法
774
查看次数

从 Google Cloud Storage 批量恢复文件

不小心在错误的存储桶上运行删除命令,对象版本控制已打开,但我不太明白应该采取哪些步骤来恢复文件,或者更重要的是,如何批量执行此操作,因为我已经删除了数百个文件其中。

将不胜感激任何帮助。

cloud-storage google-cloud-storage

5
推荐指数
1
解决办法
1523
查看次数

谷歌驱动API存储来自网站的文件

我需要将用户上传到我网站的所有文档存储在一个 Drive 帐户中。

这些文档位于用户的计算机上。他们没有也不想拥有 Google Drive 帐户。

目前尚不清楚“Google Drive API”是否可以实现这一点,或者我是否需要仅存储文件更昂贵的“Google Cloud Storage API”。

所述API必须为每个用户的文档创建一个文件夹。

除此之外,我还需要 G Suite 帐户吗?

感谢一百万的帮助

cloud-storage google-cloud-storage google-drive-api google-workspace

5
推荐指数
0
解决办法
730
查看次数

Backblaze B2 原生 URL 与友好 URL - 交易上限?

我使用 B2 作为我们开发的网站上图像的存储。

事实上,B2 需要提供数百万张图像,我想知道使用本机 URL 或 B2 提供的友好 URL 在交易上限方面是否有区别?

请参阅下面的示例 URL:

在此输入图像描述

cloud-storage backblaze

5
推荐指数
1
解决办法
1233
查看次数

对于 AWS/S3 的 PUT 请求,“If-Match”或“x-goog-if- Generation-match”等效项

对于发送到 Amazon S3 Blob 存储的 PUT 请求,是否存在与“If-Match”(Azure) 或“x-goog-if- Generation-match”(Google Storage) 等效的等效项?

这两个标头都执行相同的操作 - 它们允许您指定覆盖对象的 PUT 请求仅在覆盖对象的特定先前版本时才应成功。细节:

https://learn.microsoft.com/en-us/azure/storage/common/storage-concurrency?toc=/azure/storage/blobs/toc.json#optimistic-concurrency-for-blobs-and-containers

https://cloud.google.com/storage/docs/xml-api/reference-headers#xgoogif Generationmatch

谢谢!

amazon-web-services cloud-storage

5
推荐指数
1
解决办法
822
查看次数

以非 root 用户身份运行的 docker 容器进程无法写入 docker 卷

TLDR

  • 每个人都建议容器内的进程不应该以 root 身份运行
  • (除了kubernetes)似乎没有一个好的 devops/configuration-as-code 方法来在 docker 卷上设置正确的所有者/权限,因此(非 root)用户无法写入卷

当以non-root用户身份运行容器进程并且我想写入(cloudstor,aws-ebs)docker 卷时,什么是好的做法。


很长的故事

在(和外部)docker 容器中以 root 身份运行进程被认为是不好的做法(参见例如ref1ref2,...)。这可能具有安全隐患。

但是当我们开始使用 docker 卷并且非 root 用户尝试写入卷时,麻烦就开始了。我找不到一个干净的解决方案,可以在没有人工干预的情况下在云基础设施上运行。我发现的所有工作解决方案似乎都在某些方面存在不足(安全性、可维护性……)。

作为一个侧面说明,我们正在部署上docker-swarm使用cloudstor,以提供aws-ebs卷。我们希望有朝一日迁移到 kubernetes,但我们还没有 kubernetes,因此我们尝试为我们的设置寻找替代解决方案。

考虑的解决方案/变通方法

1. 在 docker 镜像中预先创建卷

正如这里所建议的,如果docker-compose创建一个卷,将传播对图像内目录的权限。

缺点:

  • 如果该卷之前存在,或者它是磁盘上的文件夹,这将不起作用
  • 如果使用 配置卷cloudstor,这可能也不起作用,因为它不会docker-compose配置卷(未测试)

2. 使用volumes-provisioner

hasat 创建了一个volumes-provisioner映像,它可以在真正的容器启动之前设置正确的文件夹权限。

缺点:

  • 需要在 docker 堆栈中添加额外的服务。该服务几乎立即终止(设置权限后)。
  • 真正的容器需要依赖于volumes_provisioner。重新部署同一个堆栈时(配置更改后),执行顺序无法保证
  • ebs 卷只能挂载在单个 docker 容器上,这导致了许多部署问题

3.docker run用于更正文件权限 …

file-permissions cloud-storage docker docker-compose docker-swarm

5
推荐指数
1
解决办法
1402
查看次数