Удалить блоки Amazon S3? [закрытый]

Это проблема CORS . Есть некоторые настройки, которые вы можете изменить в угловом - это те, которые я обычно устанавливаю в методе Angular .config (не все относятся к CORS):

$httpProvider.defaults.useXDomain = true;
$httpProvider.defaults.withCredentials = true;
delete $httpProvider.defaults.headers.common["X-Requested-With"];
$httpProvider.defaults.headers.common["Accept"] = "application/json";
$httpProvider.defaults.headers.common["Content-Type"] = "application/json";

Вам также необходимо настроить свой веб-сервис - детали этого будут зависеть от используемого вами языка на стороне сервера. Если вы используете инструмент сетевого мониторинга, вы увидите, что он сначала отправляет запрос OPTIONS. Ваш сервер должен ответить соответствующим образом, чтобы разрешить запрос CORS.

Причина, по которой он работает в вашем браузере, заключается в том, что он не делает запрос на перекрестный поиск, тогда как ваш угловой код.

56
задан Chilledrat 3 May 2012 в 02:03
поделиться

13 ответов

Необходимо удостовериться, что у Вас есть корректный набор полномочий записи для блока, и блок не содержит объектов. Некоторые полезные инструменты, которые могут помочь Вашему удалению: CrossFTP, представление и удаляют блоки как клиент FTP. инструмент jets3t , как упомянуто выше.

0
ответ дан Gatorhall 26 November 2019 в 16:58
поделиться

Удалите все объекты в блоке сначала. Тогда можно удалить сам блок.

, По-видимому, нельзя удалить блок с объектами в нем, и S3Fox не делает этого для Вас.

я имел другие небольшие проблемы с S3Fox сам, как это, и теперь использую основанный на Java инструмент, jets3t, который является более предстоящим о состояниях ошибки. Должны быть другие, также.

0
ответ дан Stu Thompson 26 November 2019 в 16:58
поделиться

Я всегда заканчивал тем, что использовал их API C# и небольшие сценарии, чтобы сделать это. Я не уверен, почему S3Fox не может сделать этого, но та функциональность, кажется, повреждается в нем в данный момент. Я уверен, что многие из других инструментов S3 могут сделать это также, все же.

0
ответ дан jsight 26 November 2019 в 16:58
поделиться

SpaceBlock также делает простым удалить s3 блоки - блок щелчка правой кнопкой, удалить, ожидать задания для завершения в представлении передач, сделанном.

Это - свободные и окна с открытым исходным кодом s3 фронтенд, который я поддерживаю, таким образом, бесстыдный разъем предупреждает и т.д.

5
ответ дан John Spurlock 26 November 2019 в 16:58
поделиться

Это может быть ошибкой в S3Fox, потому что он обычно в состоянии удалить объекты рекурсивно. Однако я не уверен, пытался ли я когда-либо удалить целый блок и его содержание сразу.

проект JetS3t, как упомянуто Stu, включает апплет GUI Java, который можно легко выполнить в браузере для управления блоками S3: Кабина . Это имеет оба достоинства и недостатка по сравнению с S3Fox, но существует хороший шанс, это поможет Вам иметь дело со своим неприятным блоком. Хотя это потребует, чтобы Вы удалили объекты сначала, тогда блок.

Правовая оговорка: я - автор JetS3t и Кабины

5
ответ дан James Murty 26 November 2019 в 16:58
поделиться

Try https://s3explorer.appspot.com/ to manage your S3 account.

0
ответ дан 26 November 2019 в 16:58
поделиться

С s3cmd: Создать новый пустой каталог s3cmd sync --delete-deleted empty_directory s3: // yourbucket

7
ответ дан 26 November 2019 в 16:58
поделиться

I думаю, проще всего было бы использовать S3fm , бесплатный онлайн-менеджер файлов для Amazon S3. Нет приложений для установки, нет регистрации на сторонних веб-сайтах. Работает прямо с Amazon S3, безопасно и удобно.

Просто выберите свою корзину и нажмите «Удалить».

3
ответ дан 26 November 2019 в 16:58
поделиться

Помните, что корзины S3 должны быть пустыми, прежде чем их можно будет удалить. Хорошей новостью является то, что большинство сторонних инструментов автоматизируют этот процесс. Если у вас возникают проблемы с S3Fox, я рекомендую попробовать S3FM для графического интерфейса или S3Sync для командной строки. У Amazon есть отличная статья, описывающая , как использовать S3Sync . После настройки переменных ключевой командой будет

./s3cmd.rb deleteall <your bucket name>

Удаление сегментов с большим количеством отдельных файлов приводит к сбою многих инструментов S3, поскольку они пытаются отобразить список всех файлов в каталоге. Вам нужно найти способ удалять партиями. Лучший инструмент с графическим интерфейсом, который я нашел для этой цели, - это Bucket Explorer. Он удаляет файлы в сегменте S3 в 1000 фрагментов и не дает сбоев при попытке открыть большие сегменты, такие как s3Fox и S3FM.

Я также нашел несколько скриптов, которые вы можете использовать для этой цели. Я еще не пробовал эти скрипты, но они выглядят довольно просто.

РУБИН

require 'aws/s3'

AWS::S3::Base.establish_connection!(
:access_key_id => 'your access key',
:secret_access_key => 'your secret key'
)

bucket = AWS::S3::Bucket.find('the bucket name')

while(!bucket.empty?)
begin
puts "Deleting objects in bucket"

bucket.objects.each do |object|
object.delete
puts "There are #{bucket.objects.size} objects left in the bucket"
end

puts "Done deleting objects"

rescue SocketError
puts "Had socket error"
end

end

PERL

#!/usr/bin/perl
use Net::Amazon::S3;
my $aws_access_key_id = 'your access key';
my $aws_secret_access_key = 'your secret access key';
my $increment = 50; # 50 at a time
my $bucket_name = 'bucket_name';

my $s3 = Net::Amazon::S3->new({aws_access_key_id => $aws_access_key_id, aws_secret_access_key => $aws_secret_access_key, retry => 1, });
my $bucket = $s3->bucket($bucket_name);

print "Incrementally deleting the contents of $bucket_name\n";

my $deleted = 1;
my $total_deleted = 0;
while ($deleted > 0) {
print "Loading up to $increment keys...\n";
$response = $bucket->list({'max-keys' => $increment, }) or die $s3->err . ": " . $s3->errstr . "\n";
$deleted = scalar(@{ $response->{keys} }) ;
$total_deleted += $deleted;
print "Deleting $deleted keys($total_deleted total)...\n";
foreach my $key ( @{ $response->{keys} } ) {
my $key_name = $key->{key};
$bucket->delete_key($key->{key}) or die $s3->err . ": " . $s3->errstr . "\n";
}
}
print "Deleting bucket...\n";
$bucket->delete_bucket or die $s3->err . ": " . $s3->errstr;
print "Done.\n";

ИСТОЧНИК: Tarkblog

Надеюсь, это поможет!

30
ответ дан 26 November 2019 в 16:58
поделиться

Я собрал скрипт для этого из Python, он успешно удалил мои 9000 объектов. См. Эту страницу:

https://efod.se/blog/archive/2009/08/09/delete-s3-bucket

1
ответ дан 26 November 2019 в 16:58
поделиться

Мне нужно взглянуть на некоторые из этих альтернативных файловых менеджеров. Я использовал (и мне нравится) BucketExplorer, который вы можете получить - на удивление - http://www.bucketexplorer.com/ .

Это 30-дневная бесплатная пробная версия, тогда (в настоящее время) стоит 49,99 долларов США за лицензию (49,95 долларов США на титульной странице покупки).

0
ответ дан 26 November 2019 в 16:58
поделиться

Еще одна бесстыдная затычка: я устал ждать отдельных HTTP-запросов на удаление, когда мне нужно было удалить 250 000 элементов, поэтому я написал сценарий Ruby, который делает его многопоточным и выполняет за небольшую часть времени. time:

http://github.com/sfeley/s3nuke/

Это тот, который работает намного быстрее в Ruby 1.9 из-за способа обработки потоков.

1
ответ дан 26 November 2019 в 16:58
поделиться

последние версии s3cmd имеют --recursive

например,

~/$ s3cmd rb --recursive s3://bucketwithfiles

http://s3tools.org/kb/item5.htm

16
ответ дан 26 November 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: