如何解决Google云端存储仅对某些对象的权限
我有一个包含多个文件夹的存储桶,每个文件夹包含多个对象(pdf)。是否可以只允许某些用户只看到特定的对象(如果可以看到其他文件夹,可以吗?)?
像这样创建对象后,我尝试仅对某些对象应用读者acl权限:
myFile.acl.add({ entity: 'group-' + email,role: 'READER' })
但是用户看不到存储桶,所以我给了他“存储对象查看器”权限,但是现在他可以看到所有对象。
组是正确的(我希望),我与特定用户创建了一个组。
感谢您的帮助!
解决方法
通过添加#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
struct Node {
struct Node *next;
struct Node *prev;
};
struct Node *
CreateNewNode()
{
struct Node *newNode = malloc(sizeof(struct Node));
// NOTE/WARN: this was moved from main to be more general
#if 1
newNode->next = NULL;
newNode->prev = NULL;
#endif
return newNode;
}
struct PieceTable {
char *buffer;
char *ptr_to_last_character;
} PT;
void
strconcatenate(char *source)
{
size_t source_len = strlen(source);
size_t buffer_len = strlen(PT.buffer);
// NOTE/BUG: after the realloc,PT.buffer can change but
// PT.ptr_to_last_character is pointing within the _old_ buffer
// we need to recalc using an offset
#if 0
PT.buffer = realloc(PT.buffer,buffer_len + source_len + 1);
#else
ptrdiff_t offset = PT.ptr_to_last_character - PT.buffer;
PT.buffer = realloc(PT.buffer,buffer_len + source_len + 1);
PT.ptr_to_last_character = PT.buffer + offset;
#endif
while (*source)
*PT.ptr_to_last_character++ = *source++;
*PT.ptr_to_last_character = '\0';
}
int
main(int argc,char *argv[])
{
char input_line[1024];
// NOTE/BUG: sizeof(char) is _always_ 1 by definition
#if 0
PT.buffer = malloc(sizeof(char) * 2);
#else
PT.buffer = malloc(2);
#endif
*PT.buffer = '\0';
PT.ptr_to_last_character = PT.buffer;
// NOTE/WARN: this isn't used anywhere
struct Node *new_node = CreateNewNode();
// NOTE/WARN: this would be better inside CreateNewNode
#if 0
new_node->next = NULL;
new_node->prev = NULL;
#endif
strconcatenate("Lorem ipsum\n");
strconcatenate("dolor sit amet\n");
strconcatenate("consectetur adipiscing elit\n");
printf("%s",PT.buffer);
return 0;
}
的角色,您可以允许用户按照说明here列出存储桶内容
允许用户列出存储桶的内容。还允许用户读取存储段元数据,但不包括ACL。
为了允许特定用户,您可以使用addUser函数:
READER
或者如果您要添加组:
const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
async function addFileReader() {
await storage
.bucket(bucketName)
.file(filename)
.acl.readers.addUser(userEmail);
}
您也可以通过用户界面进行操作
- 进入
const {Storage} = require('@google-cloud/storage'); const storage = new Storage(); async function addFileReader() { await storage .bucket(bucketName) .file(filename) .acl.readers.addGroup(groupEmail); }
部分 - 点击您要授予访问权限的特定存储桶
- 单击要授予访问权限的特定文件
- 转到
Storage
,在EDIT PERMISSIONS
列内的弹出菜单中选择Entity
或User
列中的Group
输入电子邮件并选择{{1} }Name
列中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。