C# 将文件上载到Google云存储时设置公共读取权限
“到处搜索”似乎找不到一种方法来指定ACL值,这样我刚刚上传的文件就可以被任何有链接的人公开读取 这是创建包含文件信息的Data.Object的代码,其中有一个Acl属性,但将实体设置为“allUsers”,角色为“READER”,不起作用C# 将文件上载到Google云存储时设置公共读取权限,c#,vb.net,google-cloud-storage,C#,Vb.net,Google Cloud Storage,“到处搜索”似乎找不到一种方法来指定ACL值,这样我刚刚上传的文件就可以被任何有链接的人公开读取 这是创建包含文件信息的Data.Object的代码,其中有一个Acl属性,但将实体设置为“allUsers”,角色为“READER”,不起作用 Dim fileObj = New Google.Apis.Storage.v1.Data.Object() With { _ .Name = "/myfolder/2016/07/27/selfie1.jpg", _
Dim fileObj = New Google.Apis.Storage.v1.Data.Object() With { _
.Name = "/myfolder/2016/07/27/selfie1.jpg", _
.Updated = DateTime.Now, _
.Size = CULng(fileStream.Length) _
}
上传后,我可以从MediaLink属性获取链接,我的问题是如何指定任何人都可以读取我要上传的文件的权限?似乎我没有正确测试链接,下面是找到此问题并想知道我在做什么的人的代码。这是测试代码,不是生产代码
Dim fileMimeType = "image/jpeg"
Dim fileStream = New FileStream("c:\selfie1.jpg", FileMode.Open, FileAccess.Read)
Dim acc As New ObjectAccessControl()
acc.Entity = "allUsers"
acc.Role = "READER"
Dim Accs As New List(Of ObjectAccessControl)
Accs.Add(acc)
Dim fileObj = New Google.Apis.Storage.v1.Data.Object() With { _
.Name = "/myfolder/2016/07/27/selfie1.jpg", _
.Updated = DateTime.Now, _
.Acl = Accs, _
.Size = CULng(fileStream.Length) _
}
Dim mediaUpload = New ObjectsResource.InsertMediaUpload(service, fileObj, GCSBucketName, fileStream, fileMimeType)
mediaUpload.Upload()
ObjectAccessControl对象的两个值是使其工作的关键。“service”变量是一个StorageService对象,您可以使用从云api控制台获得的.p12或.json文件中的ServiceAccountCredential创建该对象