gpt4 book ai didi

javascript - 使用 PHP 将文件上传到 Google Cloud Storage Bucket

转载 作者:搜寻专家 更新时间:2023-10-31 21:47:21 25 4
gpt4 key购买 nike

我搜索了很多(甚至找到了一些有用的链接,比如这个 Upload a file to Google Cloud Storage Bucket with PHP and Ajax ),但我无法让它工作。我需要将一个 txt 文件上传到我的谷歌云存储桶。

这是我的代码:

gcp_storage.php:

<?php

if(isset($_FILES['file'])){
$errors= array();
// Authentication with Google Cloud Platform
$client = new StorageClient(['keyFilePath' => 'cloudtest-2412**-a66e94ba56**.json']);
$bucket = $client->bucket('cloudtest-2412**.appspot.com ');

// Upload a file to the bucket.
$file = pathinfo($_FILES['file']['name']);
$prefix = uniqid('prefix_', true); //generate random string to avoid name conflicts
$filename = $prefix . "." . $file['extension'];

$bucket->upload(
fopen($_FILES['file']['tmp_name'], 'r'),
['name' => $filename]
);
}

?>

html 和 js:

<html>
<form id="fileForm" action="" method="post" enctype="multipart/form-data">
<div class="form-row">
<br/>
<div class="form-group">
<label for="textFile">Text File: </label>
<br/>
<input type="file" name="file" id="textFile">
</div>
</div>
<br>
<button type="submit" class="btn btn-lg btn-primary"> Upload </button>
</form>

</html>

<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>

<script>

$(document).on('submit', '#fileForm', function (e) {
e.preventDefault();
var data = new FormData($('#fileForm').get(0));
$.ajax({
type: 'POST',
url: 'gcp_storage.php',
data: data,
processData: false,
contentType: false,
success: function ($data) {
console.log('Succcess');
$('#success').attr('hidden', false);
}
});
});

</script>

*它在我的控制台上显示成功,但是当我转到我在谷歌云上的存储桶时,什么也没有出现...

*我从IAM页面下载了.json文件(该文件与其他文件在同一个目录)

编辑 1:

不知道这是否真的有帮助,如果我删除 use Google\Cloud\Storage\StorageClient,PHP 会向我抛出错误 Class 'StorageClient' not found in/base/data/home/apps/i (当我放回使用代码时它只是抛出 500 错误,见下文)

我一直在更改代码并放置断点以查看是否找到 500 错误的来源。如果我从我的 PHP 文件中删除所有内容并只输入 echo "Test",它就可以正常工作。

在原来的代码处打了一些断点后,发现500错误就出自这行代码:

$client = new StorageClient(['keyFilePath' => 'cloudtest-2412**-a66e94ba56**.json']);
$bucket = $client->bucket('cloudtest-2412**.appspot.com');

(验证码)

有什么建议吗?

谢谢

最佳答案

我想,我们可以看到权限错误。在大多数情况下,内部 500 服务器错误是由于一个或多个文件或文件夹中的权限不正确造成的。

请尝试以下步骤: https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application

关于javascript - 使用 PHP 将文件上传到 Google Cloud Storage Bucket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com