Google cloud storage 是否可以将数据流(上传)存储在谷歌云存储的存储桶上,同时允许下载?

Google cloud storage 是否可以将数据流(上传)存储在谷歌云存储的存储桶上,同时允许下载?,google-cloud-storage,Google Cloud Storage,是否可以将数据流(上传)存储在谷歌云存储的存储桶上,同时允许下载? 我已经尝试使用云API,使用下面的代码将100MB的文件上传到bucket,但是在上传过程中,我在Google云控制台刷新bucket,直到上传完成,我才能看到新的上传文件。我想上传以H.264编码的实时视频,以存储在云存储上,因此大小未知,同时,其他用户可以开始下载它正在上载的文件事件。那有可能吗 Test code: File tempFile = new File("StorageSample"); Rand

是否可以将数据流(上传)存储在谷歌云存储的存储桶上,同时允许下载? 我已经尝试使用云API,使用下面的代码将100MB的文件上传到bucket,但是在上传过程中,我在Google云控制台刷新bucket,直到上传完成,我才能看到新的上传文件。我想上传以H.264编码的实时视频,以存储在云存储上,因此大小未知,同时,其他用户可以开始下载它正在上载的文件事件。那有可能吗

  Test code:

  File tempFile = new File("StorageSample");
  RandomAccessFile raf = new RandomAccessFile(tempFile, "rw");
  try
  {
      raf.setLength(1000 * 1000 * 100);
  }
  finally
  {
      raf.close();
  }

  uploadFile(TEST_FILENAME, "text/plain", tempFile, bucketName);

public static void uploadFile(
  String name, String contentType, File file, String bucketName)
  throws IOException, GeneralSecurityException 
{
    InputStreamContent contentStream = new InputStreamContent(
    contentType, new FileInputStream(file));
    // Setting the length improves upload performance
    contentStream.setLength(file.length());
    StorageObject objectMetadata = new StorageObject()
    // Set the destination object name
    .setName(name)
    // Set the access control list to publicly read-only
    .setAcl(Arrays.asList(
        new ObjectAccessControl().setEntity("allAuthenticatedUsers").setRole("READER"))); //allUsers//

    // Do the insert
    Storage client = StorageFactory.getService();
    Storage.Objects.Insert insertRequest = client.objects().insert(
    bucketName, objectMetadata, contentStream);   
    insertRequest.getMediaHttpUploader().setDirectUploadEnabled(false);  

    insertRequest.execute();
}

不幸的是,这是不可能的,因为:

对象是不可变的,这意味着上载的对象不能 在其整个存储生命周期内进行更改。对象的存储生存期 是对象创建(上载)成功与上载成功之间的时间 对象删除


这意味着云存储中的对象在上载完成时开始存在,因此在上载未完成之前,您无法访问该对象。

谢谢您的回复。那么,你对我如何实现我期望的功能有什么建议吗?感谢一个可能的解决方案,就是用一个特定的命名约定把你的大对象分成小块。这样,一旦上传了一个小对象,用户就可以开始内容流。您需要处理不同对象上的智能缓冲和迭代,以便为用户提供平滑的体验。