Cloud Functions インスタンスのファイル システムにアクセスする方法を説明します。
もっと見る
このコードサンプルを含む詳細なドキュメントについては、以下をご覧ください。
コードサンプル
C#
using Google.Cloud.Functions.Framework;
using Microsoft.AspNetCore.Http;
using System.IO;
using System.Threading.Tasks;
namespace FileSystem
{
public class Function : IHttpFunction
{
public async Task HandleAsync(HttpContext context)
{
string[] files = Directory.GetFiles(".");
await context.Response.WriteAsync("Files:\n");
foreach (string file in files)
{
await context.Response.WriteAsync($"\t{file}\n");
}
}
}
}
C++
#include <google/cloud/functions/http_request.h>
#include <google/cloud/functions/http_response.h>
#include <filesystem>
namespace gcf = ::google::cloud::functions;
gcf::HttpResponse concepts_filesystem(gcf::HttpRequest /*request*/) { // NOLINT
std::string payload;
for (auto const& p : std::filesystem::directory_iterator(".")) {
payload += p.path().generic_string();
payload += "\n";
}
return gcf::HttpResponse{}
.set_header("content-type", "text/plain")
.set_payload(payload);
}
Go
// Package tips contains tips for writing Cloud Functions in Go.
package tips
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
// ListFiles lists the files in the current directory.
// Uses directory "serverless_function_source_code" as defined in the Go
// Functions Framework Buildpack.
// See https://github.com/GoogleCloudPlatform/buildpacks/blob/56eaad4dfe6c7bd0ecc4a175de030d2cfab9ae1c/cmd/go/functions_framework/main.go#L38.
func ListFiles(w http.ResponseWriter, r *http.Request) {
files, err := ioutil.ReadDir("./serverless_function_source_code")
if err != nil {
http.Error(w, "Unable to read files", http.StatusInternalServerError)
log.Printf("ioutil.ListFiles: %v", err)
return
}
fmt.Fprintln(w, "Files:")
for _, f := range files {
fmt.Fprintf(w, "\t%v\n", f.Name())
}
}
Java
import com.google.cloud.functions.HttpFunction;
import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
public class FileSystem implements HttpFunction {
// Lists the files in the current directory.
@Override
public void service(HttpRequest request, HttpResponse response)
throws IOException {
File currentDirectory = new File(".");
File[] files = currentDirectory.listFiles();
PrintWriter writer = new PrintWriter(response.getWriter());
writer.println("Files:");
for (File f : files) {
writer.printf("\t%s%n", f.getName());
}
}
}
Node.js
const fs = require('fs');
/**
* HTTP Cloud Function that lists files in the function directory
*
* @param {Object} req Cloud Function request context.
* @param {Object} res Cloud Function response context.
*/
exports.listFiles = (req, res) => {
fs.readdir(__dirname, (err, files) => {
if (err) {
console.error(err);
res.sendStatus(500);
} else {
console.log('Files', files);
res.sendStatus(200);
}
});
};
PHP
use Psr\Http\Message\ServerRequestInterface;
function listFiles(ServerRequestInterface $request): string
{
$contents = scandir(__DIR__);
$output = 'Files:' . PHP_EOL;
foreach ($contents as $file) {
$output .= "\t" . $file . PHP_EOL;
}
return $output;
}
Python
def list_files(request):
import os
from os import path
root = path.dirname(path.abspath(__file__))
children = os.listdir(root)
files = [c for c in children if path.isfile(path.join(root, c))]
return 'Files: {}'.format(files)
Ruby
require "functions_framework"
FunctionsFramework.http "concepts_filesystem" do |_request|
files = Dir.entries "."
"Files: #{files.join "\n"}"
end
次のステップ
他の Google Cloud プロダクトに関連するコードサンプルの検索およびフィルタ検索を行うには、Google Cloud のサンプルをご覧ください。