FileService (Google App Engine API for Java)

Interface FileService

  • Deprecated. 
    This api has been deprecated in favor of the App Engine GCS client.

    public interface FileService
    This is the interface for interacting with the Google App Engine File Service. A FileService instance is obtained via FileServiceFactory.getFileService(). Currently there are two file systems supported: BLOBSTORE and GS When writing files in GS (Google Storage), you have to first create a writable file handle by using createNewGSFile, append to it and when all done writing, you must finalize the file for it to persist. Typical usage to create a new file in Google Storage is as follows:
        FileService fileService = FileServiceFactory.getFileService();
        GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
            .addUserMetadata("myfield1", "my field value");
        AppEngineFile writableFile =
        // Open a channel to write to it
        boolean lock = false;
        FileWriteChannel writeChannel =
            fileService.openWriteChannel(writableFile, lock);
        // Different standard Java ways of writing to the channel
        // are possible. Here we use a PrintWriter:
        PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"));
        out.println("The woods are lovely dark and deep.");
        out.println("But I have promises to keep.");
        // Close without finalizing and save the file path for writing later
        String path = writableFile.getFullPath();
        // Write more to the file in a separate request:
        writableFile = new AppEngineFile(path);
        // This time lock because we intend to finalize
        lock = true;
        writeChannel = fileService.openWriteChannel(writableFile, lock);
        // This time we write to the channel directly.
            "And miles to go before I sleep.".getBytes()));
        // Now finalize
        // At this point the file is visible in App Engine as:
        // "/gs/mybucket/myfile"
        // and to anybody on the Internet through Google Storage as:
        // (
        // So reading it through Files API:
        String filename = "/gs/mybucket/myfile";
        AppEngineFile readableFile = new AppEngineFile(filename);
        FileReadChannel readChannel =
            fileService.openReadChannel(readableFile, false);
        // Again, different standard Java ways of reading from the channel.
        BufferedReader reader =
            new BufferedReader(Channels.newReader(readChannel, "UTF8"));
        String line = reader.readLine();
        // line = "The woods are lovely dark and deep."
    See Also:
    App Engine GCS client documentation
    • Method Detail

      • createNewBlobFile

        AppEngineFile createNewBlobFile(java.lang.String mimeType)
        Creates a new empty file in the BlobStore of the specified mime-type and returns an AppEngineFile representing the file. The returned instance will have a file system of BLOBSTORE.
        mimeType - the mime-type of the file to be created. This parameter may be used to inform the BlobStore of the mime-type for the file. The mime-type will be returned by the BlobStore in an HTTP response if the file is requested directly from the BlobStore using the blob-key.
        A AppEngineFile representing the newly created file.