无法在Parse-Server应用程序中删除AWS-S3上的音频数据

Heroku上使用AWS-S3Parse-Server时,我正在努力使事情正常工作。

在AWS上,我有一个名为mybucket的S3存储桶和一个名为mybucket-aws的用户,该策略与此策略相关联:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::mybucket", "arn:aws:s3:::mybucket/*" ] } ] } 

在旁边,在Heroku上我有一个像这样的解析服务器:

 var express = require('express'); var ParseServer = require('parse-server').ParseServer; var path = require('path'); var mongo = require('mongodb'); var MongoClient = mongo.MongoClient; var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI; if (!databaseUri) { console.log('DATABASE_URI not specified, falling back to localhost.'); } var api = new ParseServer({ databaseURI: databaseUri, cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', appId: process.env.APP_ID, masterKey: process.env.MASTER_KEY, filesAdapter: "@parse/s3-files-adapter", serverURL: process.env.SERVER_URL, publicServerURL: process.env.PARSE_PUBLIC_SERVER_URL, appName: 'MyApp', ......... }); 

以下是我在将音频数据上传到服务器时在iOS应用中使用的swift代码:

 //audioFileName is the name of the sound file. do {let soundData = try Data(contentsOf: getDocumentsDirectory().appendingPathComponent(audioFileName)), parse_Sound = PFFile(name: "Voice", data: soundData) parse_Sound?.saveInBackground(block: { (succeeded:Bool, error:Error?) in if succeeded { // Keep working all is OK. } else {print("Error: \(error ?? "" as! Error)")} }) } catch let error { print("Error:\n" + error.localizedDescription) } 

最后,这里是通过云function运行的javascript代码,当我想从服务器中删除音频数据时使用。 它通过iOS应用程序调用。 并且它(完全)不起作用。

 const aws = require('aws-sdk'); ......... (function() { var destroyPromises = []; const s3 = new aws.S3(); for (i = 0; i < myArray.length; i++) { // Let us remove the sound data: destroyPromises.push(s3.deleteObject({ Bucket: "mybucket", Key: myArray[i].get("audio") }).promise()); destroyPromises.push(myArray[i].destroy({})); } 

由于其余数据按预期被删除,我认为使用promises并不是一个错误。 只有AWS / S3上的音频数据不会被删除。 知道我可以将数据写入存储桶(上传时),我想我有写访问权限,因此也应该能够删除数据。 但我并不是100%肯定这一点,并怀疑我的权限设置可能有问题。 无论如何,有人可以看到为什么我不能删除我的s3-bucket中的音频数据并告诉我应该怎么做?